pic单片机串口问题
解决时间 2021-02-11 20:01
- 提问者网友:萌卜娃娃
- 2021-02-11 03:05
最近在用单片机接收gps模块的数据,写了个简单的从串口发送数据到pc机的程序,但是pc机上收到的并不是我发送的字符,大侠们帮忙分析是什么原因,
#include
#include
#include
__CONFIG(0x37E2);
__CONFIG(0x0FFF);
#define uchar unsigned char
#define uint unsigned int
void Uart_Init(void)
{
RXDTSEL=0; //RC5脚为接收引脚
TXCKSEL=0; //RC4脚为发送引脚
TRISC=0x20; //配置rc5脚为输入,其他为输出
//PORTC=0x00; //PORTC初始化为0
RC3=0;
RC2=0;
TXSTA=0x24; //发送使能,异步通信,高波特率
RCSTA=0x90; //串口使能,使能接收
SPBRG=51; //波特率为9600,fosc为8MHZ
}
void
putch(unsigned char byte)
{
while(!TXIF)
continue;
TXREG = byte;
}
void main(void)
{
Uart_Init(); //初始化串口
while(1)
{
RC2=1; //RC2脚拉高
putch('c');
}
}
单片机芯片是pic16F1823,晶振是8Mhz
最佳答案
- 五星知识达人网友:执傲
- 2021-02-11 04:11
貌似SPBRG算错了,51是1200BPS。。。
全部回答
- 1楼网友:蓝房子
- 2021-02-11 07:00
pic下载通常分2种:
焊接前用烧录机烧录,然后下载
用下载工具,如icd2,pickit3等
还有一种办法,就是内置了bootload,pic的做过功能要自己实现,可以通过诸如串口,i2c等等各市县,主要看boot的实现
- 2楼网友:詩光轨車
- 2021-02-11 05:47
PIC久没摸了,寄存器也全忘了,可我只在这给你谈谈串口调试的经验,第一在刚开始时最好用低波特率调试,如1200甚至用600,这样先把时钟上的误差,硬件上的原因排出,在能收到后再加高波特率,在这加高过程中你有可能看到很多怪现象,多半就因这二个原因造成的,这是很重要的,很多一来就用高波特率给自己找了很多麻烦,再就是通讯机两边的各种位数一定要设的一致,这再试试去吧,
我要举报
大家都在看
推荐资讯