我使用的STM32F103RCT6开发环境 keill 5。
我的问题是,我在使用jlink 硬件仿真的时候,发现串口接收的数据全是乱码,
比如我用过PC发个0X01发下去,通过Jlink硬件调试,在中断函数中打上断点,查看接收的数据竟然是0xfc。
我退出仿真,将单片机断电重启,让单片自己上电重启,这时候在通过PC 发0x01 ,单片机就会回传0x01,接收又恢复正常。
中间断电是必须的,不断电,只退出硬件仿真,单片机就不能恢复正常。
请问这是是怎么回事?
我之前一直没遇到过这个问题。
用两种可能:
1.串口双方配置不一致,检查下波特率和校验位。
2.断点设置位置是否正确,按照楼主的描述,可以在仿真模式下全速跑,看下发送的数据和回传的数据是否一致。如果一致,则说明断点设置问题,不一致,检查第一个可能。
经过我的测试,应该是编译器和开发环境的问题。
我将工程文件,重新用KEIL 4 编译了一遍,问题就解决了。
仿真的时候,我没有用Jlink 供电,串口配置都正常,因为我在不硬件仿真的时候,程序能正常收发。