小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

串口發(fā)送的這幾種寫法,你用過幾種?

 新用戶0118F7lQ 2021-09-16

STM32用USART發(fā)送字符串,以USART_FLAG_TXE和USART_FLAG_TC怎么用

一:STM32用USART發(fā)送字符串

void UART_Send_Message(u8 *Data){ while(*Data!='\0') { USART_SendData(USART1, *Data); while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);//讀取串口狀態(tài) Data ; }} void main(void){ u8 str_buf[500]; memset((char *) &str_buf, 0, sizeof(str_buf)); UART_Send_Message(str_buf);}

圖片

圖片

while(SET == USART_GetFlagStatus(USART1,USART_FLAG_RXNE));

含義是:當(dāng)接收引腳有數(shù)據(jù)時(shí),狀態(tài)寄存器的USART_FLAG_RXNE就會(huì)為1,此時(shí)USART_GetFlagStatus(USART1,USART_FLAG_RXNE)的返回值就為1(SET),若無數(shù)據(jù)則為RESET。

二:USART_FLAG_TXE和USART_FLAG_TC怎么用

這里主要說的是在特殊情況下發(fā)送字符軟件代碼的寫法。

特殊情況指的是:

1.調(diào)用發(fā)送字符串函數(shù)“發(fā)送完”本機(jī)立即掉電;

2.調(diào)用發(fā)送字符串函數(shù)“發(fā)送完”從機(jī)立即掉電;

【上面兩種主要用于芯片對(duì)電源控制的項(xiàng)目中】

3.調(diào)用發(fā)送字符串函數(shù)“發(fā)送完”立刻進(jìn)入待機(jī)或停機(jī);

其實(shí)本文主要說的是兩個(gè)標(biāo)志位:USART_FLAG_TXE 和 USART_FLAG_TC.

USART_FLAG_TXE發(fā)送緩沖區(qū)空標(biāo)志:說明可以往數(shù)據(jù)寄存器寫入數(shù)據(jù)了,但并不代碼數(shù)據(jù)發(fā)送完成了。

USART_FLAG_TC發(fā)送完成標(biāo)志:這個(gè)才是代表USART在緩沖區(qū)的數(shù)據(jù)發(fā)送完成了,即從機(jī)接收到了數(shù)據(jù)。

這兩個(gè)標(biāo)志的區(qū)別在于:它們分別表示數(shù)據(jù)在發(fā)送過程中,在兩個(gè)不同的階段中的完成情況。TXE 表示數(shù)據(jù)被從發(fā)送緩沖區(qū)中取走,轉(zhuǎn)移到的移位寄存器中,此時(shí)發(fā)送緩沖是空的,可以向其中補(bǔ)充新的數(shù)據(jù)了。而 TC 則表示最后放入發(fā)送緩沖區(qū)的數(shù)據(jù)已經(jīng)完成了從移位寄存器向發(fā)送信號(hào)線 Tx 上的轉(zhuǎn)移。所以,判定數(shù)據(jù)最終發(fā)送完成的標(biāo)志是 TC,而不是 TXE.

下面講述在不同代碼寫法下,得到不同實(shí)驗(yàn)效果【調(diào)試助手接收數(shù)據(jù)】:

  1. 常見寫法一 

圖片

圖片

這種寫法在不是特殊(不掉電、不待機(jī)等)情況下,問題不大,USART數(shù)據(jù)會(huì)成功發(fā)送出去。但是在上面說的特殊情況下,問題就來了,代碼只將數(shù)據(jù)放到了發(fā)送緩沖區(qū),而沒有發(fā)送出去就掉電或待機(jī)了,這個(gè)時(shí)候其實(shí)最后兩個(gè)字符是沒有發(fā)送出去的。

2.常見寫法二 

圖片

圖片

這種寫法達(dá)到的效果和上面存在不同的就是倒數(shù)第二個(gè)數(shù)據(jù)發(fā)送出去了,也就是只有最后一個(gè)字符是沒有發(fā)送出去的。

3.常見寫法三 

圖片

圖片

這種寫法達(dá)到的效果和上面兩種寫法有不一樣,發(fā)送了10個(gè)字符。

4.寫法四 

圖片

圖片

這種寫法按理說可以實(shí)現(xiàn)功能,但實(shí)際多次試驗(yàn)結(jié)果確實(shí)第一字節(jié)數(shù)據(jù)丟失了。

5.寫法五(正確寫法) 

圖片

圖片

這種寫法是比較完成,為了保守起見,在特殊情況下使用該寫法。。

至此,常見軟件寫法都給出了源代碼和試驗(yàn)效果,請(qǐng)根據(jù)自己實(shí)際情況寫代碼驗(yàn)證。

————————————————

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多