RasPi有没有串口中断这个东西?

gpiofanc
  • 3
新手上路,请多包涵

想請教RasPi 有沒有"串列阜中斷"的功能,也就是當收到UART有資訊時,會觸發事件,
跳到應執行的位址去執行程式

目前我是用輪詢的方式
程式固定會去訊問一次有沒有字串輸入
覺得沒什麼效率

謝謝解答

回复
阅读 3.2k
3 个回答

这个计算机用语的差异… 可能有差异处标明了英语

只要有串口(Serial Port,串列阜),硬件上就必有串口中断。但在操作系统(OS)的管理下,这个中断不是用户直接使用的。

操作系统将串口转换为一个标准(stream),如果串口没有传来任何数据,则读取时程序启动挂起。这个挂起状态是操作系统接管的,效率没有问题,和你设想的中断是一个意思。

你可以类比一下scanf在用户输入完成之前的状态。是一个道理。

我以前写过的一个程序就是例子。串口有数据到达前,程序一直挂起在read(),而不占用CPU。

UART不好说,但是GPIO的中断是有的,raspbian是帮你弄到内核里面去的,所以可以直接用,用python-gpio是中断驱动而非轮询

其他的发行版不清楚有没有linux kernel里面搞定GPIO中断

馒头簸箕
  • 1
新手上路,请多包涵

用select去监视打开ttyUSBx的文件描述符即可

你知道吗?

宣传栏