问题1:使用fprintf向串口发送数据时,下位机不能成功接受数据
原因:通讯协议不一致,下位机连续接受0x0d、0x0a【CR/LF】时,完成一次接受【usart.c,stm32,串口中断函数】,需要配置matlab串口的terminator为CR/CF。
-CR/LF的结束符为\n\r【0x0d—CR—\r; 0x0a—LF—\n】。
小结1:matlab中fprintf函数
-fprintf以文本输出时,\r\n为转译字符,长度为为2,输出为ASCII格式
-fprintf以二进制输出时,\r\n为4个字符,长度为4,即忽略ASCII格式的转译字符
小结2:terminator设置
-fprintf采用默认输出时,为%s\n,末端自动添加终止符
-fprintf采用制定格式输出时,只有在遇到\n时,表示输出结束,末端才添加终止符