万能的串口数据接收及处理方法 |
您所在的位置:网站首页 › 串口数据包收发方法 › 万能的串口数据接收及处理方法 |
搞单片机,肯定少不了串口的使用,不管是调试也好,与其他设备通信也好,是我们不可或缺的利器。接下来就分享一下本人在项目中使用串口接收数据及处理的方法。 先介绍下主要思路,首先需要开一个定时器,我们接收串口端发来的数据,这个时候会产生接收中断,在中断里面我们做三件事,1.启动定时器;2.清除时间计数器;3.接收数据存放到事先定义好的缓存buffer;然后我们在定时器中断里面也做三件事:1.累加时间计数器;2.判断时间计数器是否超过我们设定的阈值(超过,说明等待了一段时间没有收到数据,判定数据接收完毕,具体时间是具体情况而定)3.判定接收完毕数据之后,清除计数器,处理接收数据的buffer,清除buffer,关闭定时器;这是主要思路,也是最为重要的部分,最后给出我的代码,可以移植到任何处理器上面,非常实用。这里在强调一下定时器的问题,我们有两种用法,一是,需要用到定时器就打开,不用就关闭,上面介绍的思路是这种使用方法;二是,打开定时器之后不关闭,让其一直运行,这样的好处是我们可以用一个定时器处理多个串口通信问题,当做一个时基,因为实际项目中很多情况都是同时会使用多个串口;下面我给的代码用的是第二种方法,了解了思路其实是很简单的事情。 串口数据结构体: 处理接口函数 串口中断处理 定时器中的数据处理,里面只是把接收到的数据原封不动传回去,使用send_str()函数,在此地方大家可以加入自己数据处理的方法 上述接口函数的具体实现 至此结束,希望对大家有所帮助,欢迎分享大家自己的想法!!! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |