STM32 学习笔记——一个不小不大的坑
今天在做一个有关主从机通讯的项目时遇到了一个小小的问题。
我定义了三个u8型全局数组来分别存放三个气体浓度的PPM数值:
u8 SO2_PPMC[3],NO2_PPMC[4],u8 CO_PPMC[3];
然后发现屏幕上显示的浓度值并非与预期相同。后来我把这三个字节型数组单独输送到串口调试助手上查看,发现以下规律:
第一个和第二个定义的数组在显示完自己之后总是会附带的显示出下一个数组。(其中的567是定义的最后一个数组。)
我使用的发送语句:
printf("%s",NO2_PPMC)和Usart_SendString(USART1,NO2_PPMC)
这两个语句都是利用指针寻得数组并发送的,
因此我便猜测出现这种结果这可能是由于这三个数组定义的位置在内存中连续所导致。因此我便重新使用for循环一个字节一个字节的发送,发现完全正常。。。