[技术问答] HC32L130J8TA,串口115200发送正常,中断接收异常,然而2400~57600均正常

[复制链接]
3733|10
 楼主| lrzxc1 发表于 2021-5-21 17:09 | 显示全部楼层 |阅读模式
麻烦问下,使用L130J8TA,MDK5.28a,库版本使用hc32l13x_ddl_Rev1.9.2 Lite,现在的现象是:uart0使用pa09,pa10,使用RCH=4MHz,PLL至32MHz,115200bps下,发送数据正常,中断接收异常,其余波特率2400~57600均正常收发,实在找不出问题出在哪,有可能是芯片版本的问题吗,谢谢
 楼主| lrzxc1 发表于 2021-5-21 17:10 | 显示全部楼层
贴下串口关于中断的配置:
    stcCfg.stcBaud.u32Baud = baud;          //波特率:4800,9600,19200,38400,57600,115200 @32Mhz主频
    stcCfg.stcBaud.enClkDiv = UartMsk8Or16Div;         //通道采样分频配置,模式1/3为8分频
    stcCfg.stcBaud.u32Pclk = Sysctrl_GetPClkFreq();    //获得外设时钟(PCLK)频率值
    Uart_Init(M0P_UART0, &stcCfg);          //串口初始化

    Uart_ClrStatus(M0P_UART0,UartRC);       ///<清接收请求
    Uart_ClrStatus(M0P_UART0,UartTC);       ///<清发送请求
    Uart_EnableIrq(M0P_UART0,UartRxIrq);    ///<使能串口接收中断
    ///Uart_EnableIrq(M0P_UART0,UartTxIrq);    ///<使能串口发送中断
    EnableNvic(UART0_IRQn, IrqLevel1, TRUE);///<串口中断使能
Sunriver_Yao 发表于 2021-5-21 23:27 | 显示全部楼层
洒家也如此,碰上这问题。只接收4轮,再怎么,也就收不到(没引起中断)了!
caizhiwei 发表于 2021-5-22 17:16 | 显示全部楼层
官方的库文件有问题~
问题还是出在波特率
 楼主| lrzxc1 发表于 2021-5-24 08:24 | 显示全部楼层
caizhiwei 发表于 2021-5-22 17:16
官方的库文件有问题~
问题还是出在波特率

115200,可以发送,但是接收出错,搞不懂啦
martinhu 发表于 2021-5-24 10:53 | 显示全部楼层
4M的主时钟,好像不支持115200了,需要把主时钟调大,发送看着正常,如果用示波器抓,其实误差很大了,用不了
 楼主| lrzxc1 发表于 2021-5-25 09:33 | 显示全部楼层
martinhu 发表于 2021-5-24 10:53
4M的主时钟,好像不支持115200了,需要把主时钟调大,发送看着正常,如果用示波器抓,其实误差很大了,用不 ...

使用RCH=4MHz,PLL至32MHz,PCLK=32MHz,这样的频率可否跑起来115200,关键是可以发送,中断接收异常,57600收发也正常
martinhu 发表于 2021-5-27 17:05 | 显示全部楼层
本帖最后由 martinhu 于 2021-5-27 17:47 编辑
lrzxc1 发表于 2021-5-25 09:33
使用RCH=4MHz,PLL至32MHz,PCLK=32MHz,这样的频率可否跑起来115200,关键是可以发送,中断接收异常,57 ...

发送的时候,不管波特率对不对,都能正常发送的啊,但是接收的时候,如果波特率不对,就会出错……这种情况用示波器抓一下波形就好了如下图:
32MHz做主时钟的时候,从2400~76800,波特率误差都没有问题,但是115200波特率的时候,如果是用OVER16,就可能存在误差大的问题。
2828660af6a4730e80.png


 楼主| lrzxc1 发表于 2021-5-28 08:33 | 显示全部楼层
martinhu 发表于 2021-5-27 17:05
发送的时候,不管波特率对不对,都能正常发送的啊,但是接收的时候,如果波特率不对,就会出错……这种情况用示 ...

2楼相关代码:
微信图片_20210528083143.png
martinhu 发表于 2021-5-28 13:11 | 显示全部楼层

要么发整个工程吧,光看这段代码没有意义。
 楼主| lrzxc1 发表于 2021-5-31 08:38 | 显示全部楼层
困扰多天的问题解决了,是外围485的问题,忽略了外围485的问题,现在ttl收发115200已正常,再次感谢各位老大们,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

64

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部