总结一下: can 总线: 高电平表示逻辑0,低电平表示逻辑1。 can 总线的起始场是一个 bit 的逻辑0(高电平),帧结束由7个 bit 的逻辑1(低电平)组成。 根据 can 总线的定义:在发生的时候,每连续五个 bit 的逻辑0,就会跟着补充一个 bit 的逻辑1;每连续五个 bit 的逻辑1,就会跟着补充一个 bit 的逻辑0。 因此根据上面的波形解析数据的时候,每出现000001这种数据串,那么1就是发送的时候根据 can 协议填充进去的,所以解码的时候1要去掉,即00000。 再举个例子:11111001表示的数据应该是:1111101。 RS232:(假定数据位8bit,停止位1bit,无奇偶校验) -12v 表示逻辑1,+12v 表示逻辑0. 根据波形解析的时候,高电平表示逻辑0,低电平表示逻辑1。 RS232发送数据是以 ascii 码的形式发送出去的。例如发送字符‘s’,实际上发送的就是0x 73. 每发送一个字符: 首先是一个 bit 的起始位(逻辑0),然后将 ascii 值的最低位发送出去,接着是次高位。。。。总之是低位在前,高位在后。 例如0x 73,发送的时候就是:0b11001110。 接着就是1个 bit 的停止位(逻辑1)。 1个 bit 的逻辑的时间宽度就是:1/波特率(单位是秒)。