PIC18F45K80串口打印乱码
void USART_Init(void){
TRISCbits.TRISC6=1; // 输出引脚 TX
TRISCbits.TRISC7=1; //输入引脚 RX
TXSTA1bits.TX9=0;//选择8位发送
TXSTA1bits.SYNC=0;//异步模式
TXSTA1bits.BRGH=1;//设置为高波特率
TXSTA1bits.TXEN=1;//传输使能
RCSTA1bits.RX9=0;//设置为8位接收
RCSTA1bits.CREN=1;//设置为连续接收
RCSTA1bits.SPEN=1;//使能串口1
BAUDCON1bits.BRG16=1;//16位波特率发生器
SPBRGH1=0x0;//设置波特率115200 误差-0.08%
SPBRG1=0x8A;
printf("USART初始化完成\n");
}
void USART_SendData(unsigned char tx_data)
{
TXREG1 = tx_data;
Nop();
while(TXSTA1bits.TRMT ==0);// loop
}
不知道为什么打印出来全是乱码的,还有怎么定义才能用printf啊,求各位大神解答。 应该是波特率没有配对。你用MCC生成一个,做个对比就能看出哪里有问题了。
应该是波特率问题, 除了用mcc配置然后对比 你也可以把芯片收发接到一起,看看能不能收到自己发的来确认程序是否有问题.
哦,那我就知道怎么回事了,多谢大家 每次乱码都一样吗 看看是否可以自己收发 环境干扰大吗 用示波器 一看就知道了 波特率不匹配吗 要用printf,需要重定向putc函数。
页:
[1]