日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Code 0001: Wait rx completed

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Code 0001: Wait rx completed 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

注意:以下Demo適用于不帶DMA功能的串口。

Demo0001

/* 方法: wait_rx函數每1ms掃描串口是否有接受數據,如果長時間沒有收到數據,則接受完成。

?* 分析: 該方法存在的問題是掃描時間需要配合串口波特率進行設置, 好處是數據傳輸沒有特殊格式要求。

?*/

static struct {uint16 index;uint8 items[LORA_UART_RECV_BUF_SIZE]; }lora_uart_rx_buf;/** @fn halKeyPort1Isr* @brief Port1 ISR* @param* @return*/ HAL_ISR_FUNCTION(halGPRSUartIsr,URX0_VECTOR) { URX0IF = 0; if(lora_uart_rx_buf.index >= LORA_UART_RECV_BUF_SIZE)lora_uart_rx_buf.index = 0;lora_uart_rx_buf.items[lora_uart_rx_buf.index ++] = U0DBUF; } /** @fn wait_rx* @brief wait for rx completed* @param none* @return none*/ uint8 wait_rx(uint32 times) {uint8 timeout = 0;uint8 pre_cnt = 0;while(timeout++<times){if (lora_uart_rx_buf.index > 0) {pre_cnt = lora_uart_rx_buf.index;break;}lora_delayms(1); /* todo: should be replaced */}if (timeout >= times) {return 0;}lora_delayms(1); /* todo: should be replaced */while(lora_uart_rx_buf.index != pre_cnt) {pre_cnt = lora_uart_rx_buf.index;lora_delayms(1); /* todo: should be replaced */}return 1; }

?Demo0002

/* 方法: 約定結束標志,以接收到結束標志完成接受

?* 分析: 該方法存在的問題是必須按照規定的格式發送數據, 好處是不需要考慮波特率等串口特性。

?*/

void USART1_IRQHandler(void) {u8 Res;if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) {Res =USART_ReceiveData(USART1);if((USART_RX_STA&0x8000)==0) {if(USART_RX_STA&0x4000) {if(Res!=0x0a) {
        USART_RX_STA=0;
      } else {
        USART_RX_STA|=0x8000; }
    }
else { if(Res==0x0d) { /* end with 0x0d */
        USART_RX_STA|=0x4000;
      } 
else {USART_RX_BUF[USART_RX_STA&0X3FFF]=Res;USART_RX_STA++;if(USART_RX_STA>(USART_REC_LEN-1)) {
           USART_RX_STA=0; } }} } }

?

?Demo0003

/* 方法: timeout實現,timeout時間內未收到數據,結束本次數據接收

?* 分析: 該方法和Demo0001原理相同,只是實現方式有所區別,這邊將timeout寫入接受函數里。

?*/

/**
? *name? : UART_Recv
? *brief : UART receive data
? *param : UARTx : Select UART peripheral, UART0/2/3 and UART1
? *??????? *rxbuf: pointer of rx buffer
? *??????? rxlen : length of receiving data
? *retval: length of receiving data
? */
uint8_t UART_Recv(UART_TypeDef* UARTx, uint8_t *rxbuf, uint8_t rxlen)
{
?? ?uint32_t len = 0, timeout;
?? ?while(rxlen){
?? ??? ?timeout = UART_BLOCKING_TIMEOUT;
?? ??? ?while (!(UARTx->LSR & UART_LSR_RDR)){
?? ??? ??? ?if (timeout == 0) break;
?? ??? ??? ?timeout--;
?? ??? ?}
?? ??? ?if(timeout == 0) break;
?? ??? ?
?? ??? ?*rxbuf++ = UART_RecvData(UARTx);
?? ??? ?rxlen--;
?? ??? ?len++;
?? ?}
?? ?return len;
}

轉載于:https://www.cnblogs.com/HongZheng/p/5954366.html

總結

以上是生活随笔為你收集整理的Code 0001: Wait rx completed的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 少妇性生活视频 | 成年人在线观看视频网站 | 久久精品国产精品亚洲 | 国产三级三级三级三级三级 | 亚洲精品高清视频 | 亚洲影视精品 | missav|免费高清av在线看 | 97神马影院 | 九色tv| 国产成人精品一区二区在线观看 | 少妇精品亚洲一区二区成人 | 国产三极片 | 成人 黄 色 免费播放 | 中文字幕第一页在线视频 | www.成人.com| 成人美女毛片 | 波多野一区二区 | 先锋影音av在线 | 国产真实老熟女无套内射 | 依人综合网 | 国产精品伦理一区 | 国语播放老妇呻吟对白 | 日韩无套无码精品 | 怡红院最新网址 | 一级激情视频 | 波多野结衣一区二区三区免费视频 | 精品国产无码AV | 国产污污视频在线观看 | 国产人妻大战黑人20p | 国产sm主人调教女m视频 | 亚洲精品国产av | 国产精品久久久久久久久免费桃花 | 91在线网| 国产丝袜第一页 | 亚洲熟妇无码av在线播放 | 午夜在线视频观看 | 网站免费视频www | 少妇极品熟妇人妻无码 | 国产麻豆午夜三级精品 | 中文字幕五码 | 99久久久无码国产精品性青椒 | 欧美一级特黄aaaaaa大片在线观看 | 青青青在线视频 | 国产色无码精品视频 | 美国av片 | 欧美三区视频 | 久久av免费 | youjizz.com在线观看 | 午夜精品视频在线观看 | 青青青视频在线播放 | 综合久久婷婷 | 黄色片www| 亚洲欧美高清视频 | 香港三级韩国三级日本三级 | 亚洲福利一区二区 | 在线视频观看国产 | 国产老女人乱淫免费 | 78m78成人免费网站 | 欧美与黑人午夜性猛交久久久 | 精品一区二区三区免费观看 | 国产精品久久久久久在线观看 | 亚洲影视精品 | 亚洲va韩国va欧美va | 国产精品1区2区3区4区 | 性欧美丰满熟妇xxxx性仙踪林 | 美女色网站 | 中文字幕一区二区视频 | 亚洲一二三区av | 曰本无码人妻丰满熟妇啪啪 | 久久人人爽人人爽人人片av高清 | 国产一区二区在线视频 | 精品国产乱码久久久久久蜜臀 | 91精品国产91久久久久青草 | 美国av片| 天堂色综合 | 狠狠鲁影院 | 青青草自拍 | 97人人澡 | 天天综合天天综合 | 国产强伦人妻毛片 | 宅男深夜视频 | 国产91九色 | 日韩欧美在线一区二区三区 | 精品无码m3u8在线观看 | 日韩一级完整毛片 | 欧美亚洲天堂 | 欧美小视频在线 | 一区二区 中文字幕 | 国产精品一级片在线观看 | 9l视频自拍蝌蚪9l视频 | www.香蕉视频在线观看 | 人妻天天爽夜夜爽一区二区三区 | gv天堂gv无码男同在线观看 | 亚洲涩涩图 | 国产麻豆一区二区 | 天天综合网天天综合 | 天天摸天天干 | 精品一区二区三区在线免费观看 | 99国产精品白浆在线观看免费 |