单片机上电后为什么要先发一次 0x00 0xff 0xff 0xff给屏幕

这个操作仅适用与某些单片机。

因为某些单片机在商店初始化过程中,因为认为的代码原因,可能会翻转串口相关的IO口电平,导致串口屏收到了某些无关的数据,因此第一条指令会解析失败。

第一次发指令前先发一次0x00 0xff 0xff 0xff,是因为上电过程中有可能串口引脚上产生了杂波导致屏幕已经收到一个或者多个错误数据了,所以先发一次0x00 0xff 0xff 0xff来结束当前指令,后面就可以正常操作了。

因为这条指令带有3个0xff,也就是结束符,所以这条指令会被解析,然后连同清空掉屏幕串口缓冲区里的无关数据。

当然你也可以在第一次发指令时发送两条一样的指令,则第一条指令充当了清空串口缓冲区的角色。

对应的单片机代码

printf("\x00\xff\xff\xff");