歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux基礎知識 >> RTLinux環境下串口數據的接收與發送

RTLinux環境下串口數據的接收與發送

日期:2017/3/2 14:47:50   编辑:Linux基礎知識
RTLinux提供幾個主要的串口API函數
 
  (1)void rt_com_setup(unsigned int com,unsigned baud,unsigned parity,unsigned stopbits,unsigned Wordlength)
 
  其中com是串口在rt_com_table中的下標;baud是端口工作的波特率;parity為端口的奇偶校驗策略,可選的值有RT_COM_PARITY_EVEN,RT_COM_PARITY_NONE,RT_COM_PARITY_ODD,這些都定義在rt_com.h中。在使用COM口通信之前,應先使用些函數對其進行設置。
 
  (2)int rt_com_read(unsigned int com,char *ptr,int cnt);
 
  此函數功能為將串口號為"com"的串口中的數據讀入到ptr指針指向的一個數據區中,cnt為最多讀入的字符數,該函數返回實際讀入的字符數。
 
  (3)void rt_com_write(unsigned int com,char *ptr,int cnt)
 
  此函數功能為將ptr指針指向的一個數據區中的數據寫入到串口號為"com"的串口中,並打開傳輸控制。cnt為最多寫入的字符數,該函數返回實際寫入的字符數。
 
  以上兩個讀寫函數均是對底層硬件中斷的封裝。其中斷處理函數定義在rt_com.o中。
 
  其串口通訊默認采用的是輪詢的機制,可能會在一定程度上影響系統的實時性能。可以通過修改口串口驅動程序實現中斷觸發方式。思路如下:
 
  先調用rt_com_setup函數設置串口,然後用rt_free_irq(irq)刪除RTLinux中封裝的串口中斷處理程序rt_com1_isr(),再利用rtl_request_irq(irq,user_com1_handler);安裝用戶定義的串口1的中斷處理程序user_com1_handler.
 
Copyright © Linux教程網 All Rights Reserved