默认电瓶一般都是输出高电平
命令单片机输出bit16bit 0低电平
起始位:每8bit开始时就有一个低电平起始位
重点关注 FF FF,如图(紫色波形)0x00 0x00后应该直接0xFF,但这里除去上一字节(8bit)数据位后的1bit停止位(高电平),后面原理上时原始1但是却输出了1bit的低电平,而这1bit的低电平就是,
起始位
1bit高电平停止位
发送了8bit后会有短暂的高电平,然后继续发送下一字节低电平
同理命令其发送32bit低电平
每8bit会停顿一下,所以在很多通讯里面判断是不是我要的数据时,一个是起始位和停止位,也就是变相地会判断这个高电平持续的时间长短
使用上位机串口助手发送也是一样的
而之所以会这样是因为串口发送格式的设定
如图
9600bps,发送1bit大概1/9600s
8个数据位
一个Stop Bit
也就是说8个数据位(1/1200s)+一个停止位(1bit高电平,1/9600s)
串口助手也是如此
实际应用中
比如这里的MODEBUS通讯中的要求
发送顺序细节
使用上位机串口发送,
实际发送中,先发低8位再发高8位
如图紫色,除去上一字节的结束位高电平和这一字节的起始位低电平,先发送的低4位f,再发送的高4位。
使用单片机发送
如图,第3字节也是先发送低4位F后发送高4位0