HC32L130J8TA,串口115200发送正常,中断接收异常,然而2400~57600均正常
麻烦问下,使用L130J8TA,MDK5.28a,库版本使用hc32l13x_ddl_Rev1.9.2 Lite,现在的现象是:uart0使用pa09,pa10,使用RCH=4MHz,PLL至32MHz,115200bps下,发送数据正常,中断接收异常,其余波特率2400~57600均正常收发,实在找不出问题出在哪,有可能是芯片版本的问题吗,谢谢 贴下串口关于中断的配置: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);///<串口中断使能
洒家也如此,碰上这问题。只接收4轮,再怎么,也就收不到(没引起中断)了! 官方的库文件有问题~
问题还是出在波特率 caizhiwei 发表于 2021-5-22 17:16
官方的库文件有问题~
问题还是出在波特率
115200,可以发送,但是接收出错,搞不懂啦 4M的主时钟,好像不支持115200了,需要把主时钟调大,发送看着正常,如果用示波器抓,其实误差很大了,用不了 martinhu 发表于 2021-5-24 10:53
4M的主时钟,好像不支持115200了,需要把主时钟调大,发送看着正常,如果用示波器抓,其实误差很大了,用不 ...
使用RCH=4MHz,PLL至32MHz,PCLK=32MHz,这样的频率可否跑起来115200,关键是可以发送,中断接收异常,57600收发也正常{:titter:} 本帖最后由 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,就可能存在误差大的问题。
martinhu 发表于 2021-5-27 17:05
发送的时候,不管波特率对不对,都能正常发送的啊,但是接收的时候,如果波特率不对,就会出错……这种情况用示 ...
2楼相关代码: lrzxc1 发表于 2021-5-28 08:33
2楼相关代码:
要么发整个工程吧,光看这段代码没有意义。 困扰多天的问题解决了,是外围485的问题,忽略了外围485的问题,现在ttl收发115200已正常,再次感谢各位老大们,谢谢
页:
[1]