[STM32F1] 串口数据错误

[复制链接]
621|16
 楼主| xxmmi 发表于 2020-5-9 23:18 | 显示全部楼层 |阅读模式
用stm32F103芯片获取传感器ASCII码数据,在正常模式下,其应该发送的是数据应该是:“0”“.”0""0""0""1""\t""5""4""\r""\n",从示波器上看发送过来的数据没问题,但是我这边将读取的数据通过printf函数发送给串口调试助手,但是从助手上看只只有部分数据读取:"5""4""\r""\n"
yufe 发表于 2020-5-9 23:21 | 显示全部楼层

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| xxmmi 发表于 2020-5-9 23:26 | 显示全部楼层

void USART3_IRQHandler(void)
{  
    uint8_t  ch;
         
        // 接收数据
  if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
  {         
        USART_ClearITPendingBit(USART3, USART_IT_RXNE);// 清除中断标志
               
        ch = USART_ReceiveData(USART3);
        Com3RBuf[Com3Index]=(uint8_t)ch;

       printf("ch=%d\r\n",(uint8_t)Com3RBuf[Com3Index]);
       Com3Index++;

      if(Com3RBuf[2]==0x0A))
      {
           Rec3FinishF=1;
           Com3Index=0;
       }
  }
         // 发送数据
         
     else if(USART_GetITStatus(USART3, USART_IT_TXE) != RESET)
    {
      USART_ClearITPendingBit(USART3, USART_IT_TXE);
               
     if(Com3Index<Index3End)
     {
        USART_SendData(USART3, (uint8_t)Com3TBuf[Com3Index++]);
        while(USART_GetFlagStatus(USART3,USART_FLAG_TXE) == RESET);               
      }
     else
      {
        Com3Index=0;
        USART_ITConfig(USART3, USART_IT_TXE, DISABLE);
     }
   }
        }
huwr 发表于 2020-5-9 23:29 | 显示全部楼层
把串口助手设置为16进制接收试试
songqian17 发表于 2020-5-9 23:33 | 显示全部楼层
16进制效果也是不全的,只是显示35 34 0D 0A
juventus9554 发表于 2020-5-9 23:35 | 显示全部楼层
那就是0要特殊处理的
renyaq 发表于 2020-5-9 23:40 | 显示全部楼层
把“\t”去掉试试,看格式是“\t"以前的都没显示
ousj 发表于 2020-5-9 23:43 | 显示全部楼层
把“\t”前面的所有“”去掉试试
morrisk 发表于 2020-5-9 23:47 | 显示全部楼层
波特率,串口初始化好好检查一下
wangpe 发表于 2020-5-9 23:50 | 显示全部楼层
把else if前面的else去掉试试看
songqian17 发表于 2020-5-9 23:53 | 显示全部楼层
能正常显示说明波特率是对的,应该去掉else,这样子就都能看到了
wenfen 发表于 2020-5-9 23:56 | 显示全部楼层

用串口助手读出来的是什么
pengf 发表于 2020-5-10 11:05 | 显示全部楼层
有没有可能是数据解析问题
yinxiangh 发表于 2020-5-10 11:08 | 显示全部楼层
流程控制问题
 楼主| xxmmi 发表于 2020-5-10 11:11 | 显示全部楼层

用示波器看看波形是什么
 楼主| xxmmi 发表于 2020-5-10 11:15 | 显示全部楼层

哦,那我就知道怎么回事了,多谢大家
henglin 发表于 2020-5-24 22:48 | 显示全部楼层
串口是最基本的外设应用了
别纠结,检查你的程序
肯定是你的程序有啥问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

369

主题

4278

帖子

2

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