Advertisement

三、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)

还没有任何评论哟~