串列埠中斷進行傳輸陣列資料和字串

2021-08-19 19:33:12 字數 680 閱讀 3540

這是乙個大致框架,首先我們開啟串列埠,然後將u16型別的資料放入u8型別的rec_data裡。看下後面綠字備註,可以知道『s』'e'分別代表協議中的開始與結束符,最下面那個判斷是說傳輸的資料位元組在0~uart3_rec_num之間時執行。

也就是說我們正常的執行順序為if裡的函式,再進行第二個else if 裡的復合語句,最後進行第乙個else if裡的復合語句。

下面,我釋放出第乙個和第三個復合語句

第乙個裡的復合語句,我們為串列埠一次中斷裡接受的位元組數進行累加

第三個復合語句裡,我們將rec_data裡資料放入receive_str[uart_byte_count-1]

最後我們將執行第二個復合語句中的**

我們裡面有倆個控制的語句  if(strcmp(a,b)==0)         led0=0;//就是說假如a,b相同就可執行下面的語句

這個『a』就是將a這個字串轉為ascll碼,然後進行判斷。

串列埠中斷接收資料方式

微控制器中斷能夠及時響應外部觸發事件,在中斷函式中處理外部事件,處理完成之後退回到中斷點。中斷服務函式應該能最快速的解決觸發事件,快速退出中斷,不宜在中斷中處理複雜的執行演算法。所以中斷函式的編寫盡量簡單明瞭快速,下面以串列埠接收中斷為例來說明中斷處理函式的寫法。1.設定乙個全域性標誌,觸發中斷之後...

個人練習 串列埠中斷和通訊

寫中斷需要用到定時器 1.設定它的暫存器tmod 2.thx和tlx的值 這個是設定定時器的初值 3.開啟定時器 trx 1 注 序列口兩個暫存器 串列埠控制器 和 4.的格式 sm0 sm1 sm2 ren tb8 rb8 ti ri 1 sm0和sm1用來設定序列口的工作方式 0,1,2,3一共...

微控制器FIFO串列埠中斷傳送資料

以51微控制器為例,直接上乾貨 define buffer size 128 typedef struct uartfifo static volatile uartfifo uart1txfifo void uart1init void void uart1putc unsigned char d...