大家好,用STM32串口发送数据,用串口助手接收到的数据校验码不正确 校验码存在send_buffer[9] send_buffer[10] 本来应该是send_buffer[9]=0X21 send_buffer[10]=0X75 仿真监控发现send_buffer[9]=0X21'!' send_buffer[10]=0X75'u' 请大家帮忙看看单引号里面的 i 和 u 是什么意思,谢谢
ASCLLç å¯¹ç §è¡¨.pdf
2016-11-22 22:44 上传
点击文件名下载附件
下载积分: ST金币 -138.53 KB, 下载次数: 2, 下载积分: ST金币 -1
评分
查看全部评分
i 和 u 就是对应的ASCII了。
评分
查看全部评分
谢谢,send_buffer[9]=0X21'!' send_buffer[10]=0X75'u',我查看了你发给我的ASCLL表,
!对应0X21, u对应0X75,那也就是说,我程序里算的校验码是对的,而是我少发了一个字节造成的,也就是说仿真监控到的这种格式是对的是这样吗
谢谢你的指点,谢谢
是的,是KEIL5软件写的
! 和 u 是 Keil 的 字符 显示方式,如 十进制 显示 也是一种显示方式。
校验码计算的对不对我没法判定,但从你上位机的接收情况看,串口发送是对的,只是 少 发送了一个 字节,应该是 发送函数判定发送结束的条件 处 少判定了一个
我监控程序了,我发的校验码,数据长度都是对的,我发 01 03 00 00 00 03 05 CB ;
应该返回 01 03 06 00 00 00 00 00 00 21 75 才对 ;
但是返回的数据是 01 03 06 00 00 00 00 00 00 FF ,或者01 03 06 00 00 00 00 00 00 FD,这样不但校验码不对,而且还少一个字节;
但是我监控程序:send_buffer[0]=0X01; send_buffer[1]=0X03; send_buffer[2]=0X06; send_buffer[3]=0X00; send_buffer[4]=0X00; send_buffer[5]=0X00; send_buffer[6]=0X00; send_buffer[7]=0X00; send_buffer[8]=0X00; send_buffer[9]=0X21; send_buffer[10]=0X75;
要发送的数据长度为0X0B,如此看来是没有错的,但串口助手收到的的确不对,现在不知道问题出哪里了,我换成读1、2、4、5个寄存器返回的数据都是对的,附上图片,谢谢