lrzxc1 发表于 2021-5-21 17:09

HC32L130J8TA,串口115200发送正常,中断接收异常,然而2400~57600均正常

麻烦问下,使用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收发也正常{:titter:}

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,就可能存在误差大的问题。



lrzxc1 发表于 2021-5-28 08:33

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

2楼相关代码:

martinhu 发表于 2021-5-28 13:11

lrzxc1 发表于 2021-5-28 08:33
2楼相关代码:

要么发整个工程吧,光看这段代码没有意义。

lrzxc1 发表于 2021-5-31 08:38

困扰多天的问题解决了,是外围485的问题,忽略了外围485的问题,现在ttl收发115200已正常,再次感谢各位老大们,谢谢
页: [1]
查看完整版本: HC32L130J8TA,串口115200发送正常,中断接收异常,然而2400~57600均正常