代码肯定有问题,中断不管有没有正确处理缓存数组,主函数是肯定可以正确访问该缓存的,我们处理STM32接受中断就是这样干的,由于串口的性质,该中断没必要用DMA来传输,一次中断传输一个就可以了,这样也不可能发生芯片内部总线冲突。
用环形FIFO。
我之前做马达转速测量和控制的程序时,是中断引用main函数里面的变量,即在main函数里面定义一个全局变量,然后在中断的文件里面用extern声明需要调用的外部(主函数)变量。你可以试试这个方法,可以把结果输出给显示屏看看,这样更容易发现问题
想问下用FIFO建立缓冲区和提前建立一个容量大的数组存放有什么不同?是因为进中断数据会被保护起来吗?
把数据接收到数组get_ch[8]之后,不能在主程序中使用这个数组并且进行数据分析,甚至不能将其元素赋给其他数组,不然串口就不能用
27,382
社区成员
28,770
社区内容
加载中
试试用AI创作助手写篇文章吧