PIC18F45K80串口打印乱码

[复制链接]
912|10
手机看帖
扫描二维码
随时随地手机跟帖
jiaxw|  楼主 | 2022-2-4 09:28 | 显示全部楼层 |阅读模式
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啊,求各位大神解答。

使用特权

评论回复
huangchui| | 2022-2-4 09:30 | 显示全部楼层
应该是波特率没有配对。你用MCC生成一个,做个对比就能看出哪里有问题了。

使用特权

评论回复
zwll| | 2022-2-4 22:23 | 显示全部楼层
应该是波特率问题, 除了用mcc配置然后对比

使用特权

评论回复
chuxh| | 2022-2-4 22:23 | 显示全部楼层
你也可以把芯片收发接到一起,看看能不能收到自己发的来确认程序是否有问题.

使用特权

评论回复
jiaxw|  楼主 | 2022-2-4 22:26 | 显示全部楼层

哦,那我就知道怎么回事了,多谢大家

使用特权

评论回复
drer| | 2022-3-1 16:33 | 显示全部楼层
每次乱码都一样吗

使用特权

评论回复
qcliu| | 2022-3-1 16:41 | 显示全部楼层
看看是否可以自己收发

使用特权

评论回复
coshi| | 2022-3-1 17:09 | 显示全部楼层
环境干扰大吗

使用特权

评论回复
kxsi| | 2022-3-1 17:15 | 显示全部楼层
用示波器 一看就知道了

使用特权

评论回复
wiba| | 2022-3-1 17:28 | 显示全部楼层
波特率不匹配吗

使用特权

评论回复
caigang13| | 2022-3-1 20:52 | 显示全部楼层
要用printf,需要重定向putc函数。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

825

主题

9762

帖子

4

粉丝