今天在捣鼓的时候忽然发现一个很有意思的现象,就是STM32在串口通信时并没有按照我预想的情况发生,话不多说,直接上图
最初我写的是else 但是我发现,运行时,单片机只是快闪,并不是常量,当我改成else if 的写法时,才能得到预想的结果,请问这个是什么原因呢?是发送信号时传递给串口的不仅仅是字符串1,还是说,当串口接收到1的时候,就把1给改变了(也就是说,此时i ≠1了)?
今天在捣鼓的时候忽然发现一个很有意思的现象,就是STM32在串口通信时并没有按照我预想的情况发生,话不多说,直接上图
最初我写的是else 但是我发现,运行时,单片机只是快闪,并不是常量,当我改成else if 的写法时,才能得到预想的结果,请问这个是什么原因呢?是发送信号时传递给串口的不仅仅是字符串1,还是说,当串口接收到1的时候,就把1给改变了(也就是说,此时i ≠1了)?
我之前也遇到类似的问题,是串口接收代码的问题。
你可以用串口调试助手试一下你就知道了,你现在主函数里是接收发送的数据并发送出去,你可以用助手发送一个01 接收回来的数据会多两个两个字节,具体是啥我忘记了。所以应该是你发送1后i最后的值不是1导致灯灭了