我们现在想用LM3S2965来做生产设备控制系统,用到了CAN,串口,和GPIO 做开关量控制输入和输出。现在我们希望用B端口的2pin脚做开关量控制输入,在开机时,我们拉高该脚到3.3伏,然后模拟开关过程,先把它和地短接,拉低,由于中断触发,可以看到串口输出 wxyzABC:,当我们断开地时,发现输出还是 wxyzABC: 。我们想知道如何解决这类问题?附件里有源程序keil 4.53版本
你串口输出的值是你程序BUF里面的数据,这个说明的BUF数据没有更新,串口BUF里面的数据什么时候更新与程序有关了,初步分析是您进入中断然后读取IO口的数值,然后放到串口BUF发送,但是你断开的时候不会再进中断,那么串口BUF的值是没有更新的,所以就还是这个值。有两种验证方法你试试,1,进入程序后,按照你之前的做法进行,然胡在断开IO外部拉低时,复位芯片,再看看串口数据有没有变化。2,串口BUF在每次发送新数据前,清零BUF试试。