三、Jetson TX2平台上的串口通信实现(基于POLLIN中断机制)
发布时间
阅读量:
阅读量
在闲暇之余,出于对STM32的执着追求,我始终认为串口中断应当具备独立的输入与输出中断机制,但受限于自身能力不足,一直未能实现这一设想。后来在查阅Jetson TX2的IO中断相关资料时,发现其采用的是检测IO输入输出的方式,相较于传统的SIGIO中断方式具有一定的优势:
SIGIO中断机制下,无论是串口的输入还是输出操作都会触发该中断;
而POLLIN中断则仅由串口输入操作所触发,这在一定程度上减少了判断条件;
实际上最直接的方法是采用轮询方式,在循环中直接调用read()函数进行读取操作。虽然这种方法会持续占用系统资源,无法像中断方式那样节省时间,但POLLIN中断相较之下更加便捷。
关于GPIO中断的具体实现方式,可参考以下链接:
https://developer.ridgerun.com/wiki/index.php/Gpio-int-test.c
我对该文件进行了适当修改,并将其与自己编写的串口中断代码整合在一起,有兴趣的朋友可以前往下载。
函数的核心部分如下:
memset((void*)fdset, 0, sizeof(fdset));
fdset[0].fd=my_fd;
fdset[0].events = POLLIN;
rc = poll(fdset, nfds, timeo
全部评论 (0)
还没有任何评论哟~
