[技术问答] M0518串口接收问题,请大家看看哪里不对,谢谢!

[复制链接]
1644|11
 楼主| RAYINGPX 发表于 2019-11-17 17:42 | 显示全部楼层 |阅读模式
M0518用串口接收数据时出问题。发送端共发送3个字节,固定第一字节数据会改变,其它两个字节的数据一直为0,可是接收端收到的数据,第一个字节是正常的,后面的第二、三字节却是乱的,本应为0的,但是像随机一样的数据;如果固定第二个字节数据变化,第一、三字节固定为0时,则接收到的,第二个字节正常,第一、三字节又是乱的,不为0。
收发的波特率是一样的。
接收中断如下:
/* 接收中断 */
void UART02_IRQHandler(void)
{
    uint8_t  u8InChar = 0;
    uint32_t u32IntSts = UART0->ISR;
    static uint8_t rec_cnt=0;

    if(u32IntSts & UART_ISR_RDA_INT_Msk)
    {
         while(UART_IS_RX_READY(UART0))
        {                                
          u8InChar = UART_READ(UART0);                                
            /* Check if buffer full */
               rec_buf[rec_cnt] = u8InChar;
               rec_cnt++;                                                
              if(rec_cnt >= 3)
             rec_cnt = 0;
        }
    }
}
接收中断程序是在M0518串口例程上稍做修改的
接收端串口的配置如下:
void UART0_Init(void)
{               
    /* Enable peripheral clock */
    CLK_EnableModuleClock(UART0_MODULE);

  /* Peripheral clock source uart0 */
    CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UART_S_PLL, CLK_CLKDIV_UART(1));

    /*---------------------------------------------------------------------------------------------------------*/
    /* Init I/O Multi-function                                                                                 */
    /*---------------------------------------------------------------------------------------------------------*/
    /* Set PB multi-function pins for UART0 RXD, TXD */
   SYS->GPB_MFP &= ~(SYS_GPB_MFP_PB0_Msk | SYS_GPB_MFP_PB1_Msk);
    SYS->GPB_MFP = SYS_GPB_MFP_PB0_UART0_RXD | SYS_GPB_MFP_PB1_UART0_TXD;
  
   /* Reset IP */
    SYS_ResetModule(UART0_RST);

    /* Configure UART0 and set UART0 Baudrate */
    UART_Open(UART0, 250000);
       
  /* Enable RDA中断 */
    UART_EnableInt(UART0, UART_IER_RDA_IEN_Msk);
       
   /* 设置中断优先级 */
  NVIC_SetPriority(UART02_IRQn, 1);
}
sensitivity 发表于 2019-11-17 17:56 | 显示全部楼层
有没有先确认发送端发出来的数据是不是正确的?
 楼主| RAYINGPX 发表于 2019-11-17 18:03 | 显示全部楼层
这个是确定的
 楼主| RAYINGPX 发表于 2019-11-17 18:50 | 显示全部楼层
问题已经解决了
xixi2017 发表于 2019-11-17 22:36 | 显示全部楼层
啥问题,程序不完整看不出来啊
xixi2017 发表于 2019-11-17 22:36 | 显示全部楼层
其实串口的还可以软件仿真,直接在Keil里看运行结果
dongliushui 发表于 2019-11-17 23:52 | 显示全部楼层
不如发你的完整程序来。半截的看不出来。
coshi 发表于 2019-12-9 12:58 | 显示全部楼层
楼主如何解决的啊
huangcunxiake 发表于 2019-12-9 17:00 | 显示全部楼层
也不分享一下原因。
小明的同学 发表于 2019-12-9 22:15 | 显示全部楼层
自己没配置对吧
antusheng 发表于 2019-12-11 21:11 | 显示全部楼层
1个字节一个字节的排查
flycamelaaa 发表于 2022-3-16 10:19 | 显示全部楼层

建议用示波器抓取串口上的波形去分析,怀疑还是发送端发来的数据就有问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

127

帖子

0

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