串列埠實現FIFO接受資料

2022-09-17 01:54:10 字數 1977 閱讀 6727

基本原理:靜態佇列

/*

* 串列埠的fifo簡單讀取實現

* 功能,實現串列埠的fifo實現

* 使用方法:

* 版本:v1.0.0

* */#include

"sys.h

"#include

"usartbuf.h

"usartype usart_fifo_read( usart_recerivepoint rusart,uint8_t *buf,uint8_t length)

while (length--)

}return usartok;//

資料讀取成功}/*

向緩衝區中寫入length個資料

*/usartype usart_fifo_write(usart_recerivepoint rusart,uint8_t * buf,uint8_t length)//

while(length--)

}return usartok;//

資料讀取成功}

/*清空緩衝區

*/void

usart_fifo_clear(usart_recerivepoint rusart)

#ifndef  _usartbuf_h

#define _usartbuf_h

/*該引數設定接受區大小

*/#define recerivrsize 64//

接受區大小

typedef

struct

usart_recerivetype,*usart_recerivepoint;

#define usartype int

#define usartreadover -2//

串列埠資料超出

#define usartwriteover -3//

串列埠寫資料越界

#define usartok 1usartype usart_fifo_write(usart_recerivepoint rusart,uint8_t * buf,uint8_t length);usartype usart_fifo_read( usart_recerivepoint rusart,uint8_t *buf,uint8_t length);

void

usart_fifo_clear(usart_recerivepoint rusart);

#endif/*_usartbuf_h*/

使用方式:定義乙個usart_recerivetype型別的緩衝佇列,然後就可以利用上述檔案中提供的三個函式來實現串列埠的fifo的資料接受和讀取

使用的時候可以利用

usartype usart_fifo_write(usart_recerivepoint rusart,uint8_t

* buf,uint8_t length);

usartype usart_fifo_read( usart_recerivepoint rusart,uint8_t *

buf,uint8_t length);

這兩個函式來向緩衝區中寫入和讀取資料,其中引數的含義如下

第乙個引數(rusart)是串列埠緩衝區指標型別,用來標示串列埠,

第二個引數(buf)是乙個指uint8_t型別的指標,用來指向要寫入或者讀取資料的首位址,

第三個引數(length)表示要寫入或者讀取的資料長度

出口引數usartype 實際是乙個整形資料,返回值得意義入下

#define usartreadover –2//

串列埠資料超出

#define usartwriteover -3//

串列埠寫資料越界

#define usartok 1//串列埠緩衝區資料讀出或者寫入成功

void

usart_fifo_clear(usart_recerivepoint rusart);

這個函式用來清空緩衝區資料,實現起來比較簡單

通過串列埠實現printf和scanf函式

在做裸板開發時,常常需要通過輸出或者通過串列埠輸入一些資訊。在有作業系統機器上,我們很少關心輸入和輸出的問題。因為有很多現成的庫函式供我們呼叫。在做裸板開發時,可沒有現成庫函式供我們呼叫,一切都需要我們自己實現。下面我們通過串列埠在裸板上實現乙個printf和scanf函式。printf主要用來進行...

通過串列埠實現printf和scanf函式

草根老師部落格 程姚根 在做裸板開發時,常常需要通過輸出或者通過串列埠輸入一些資訊。在有作業系統機器上,我們很少關心輸入和輸出的問題。因為有很多現成的庫函式供我們呼叫。在做裸板開發時,可沒有現成庫函式供我們呼叫,一切都需要我們自己實現。下面我們通過串列埠在裸板上實現乙個printf和scanf函式。...

使用串列埠實現接收和傳送功能

一 前言 本文以串列埠 usart1為例,初步實現接收和傳送功能,使用的是stm32f1板子,基於火哥教學做的自我小結。電腦裝置需要安裝串列埠除錯助手和usb轉串列埠ch340g的驅動。二 正文 1.硬體設計 將 ch340g 的 txd 引腳與 usart1 的 rx 引腳連線,ch340g 的 ...