• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32硬件调试,串口接收数据异常

川楠 2018-05-02 浏览量:1278

我使用的STM32F103RCT6开发环境 keill 5。

我的问题是,我在使用jlink 硬件仿真的时候,发现串口接收的数据全是乱码,

比如我用过PC发个0X01发下去,通过Jlink硬件调试,在中断函数中打上断点,查看接收的数据竟然是0xfc。

我退出仿真,将单片机断电重启,让单片自己上电重启,这时候在通过PC 发0x01 ,单片机就会回传0x01,接收又恢复正常。

中间断电是必须的,不断电,只退出硬件仿真,单片机就不能恢复正常。

请问这是是怎么回事?

我之前一直没遇到过这个问题。

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 用两种可能:

    1.串口双方配置不一致,检查下波特率和校验位。

    2.断点设置位置是否正确,按照楼主的描述,可以在仿真模式下全速跑,看下发送的数据和回传的数据是否一致。如果一致,则说明断点设置问题,不一致,检查第一个可能。

其他答案 数量:7
  • 请检查一下波特率,校验是否正确,你现在是可以收到数据,根据你的描述,最有可能是串口设置的问题

  • 看一下串口配置是不是一致的主要是波特率

  • Jlink仿真的时候是否是采用Jlink供电?这样可能会遇到供电不足的情况,目标板自己供电时正常说明板子应该没问题。

  • 串口收发数据,在串口中断那里不能用断点,否则会造成数据丢失

  • 经过我的测试,应该是编译器和开发环境的问题。

    我将工程文件,重新用KEIL 4 编译了一遍,问题就解决了。

    仿真的时候,我没有用Jlink 供电,串口配置都正常,因为我在不硬件仿真的时候,程序能正常收发。

  • 串口调试时,先不要急于去接上位机,先进行自发自收试试,看看硬件与串口配置是不是正确。
    • 发布于2018-05-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 估计是配置的串口波特率与串口助手波特率不一致
    • 发布于2018-05-15
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32硬件调试,串口接收数据异常