日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产黄色免费视频 | 久久久久亚洲av成人网人人网站 | 日本老太婆做爰视频 | 黄色在线免费播放 | 天堂在线资源库 | 丝袜老师办公室里做好紧好爽 | 久久综合婷婷国产二区高清 | 最好看的mv中文字幕国语电影 | 久久综合伊人77777麻豆最新章节 | 免费超碰在线 | 久久性爱视频网站 | 一区二区视频免费看 | 国产精久久久久久 | av资源中文在线 | 韩国一级一片高清免费观看 | 草久久| 免费黄色大片 | 永久免费精品影视网站 | 日韩亚洲欧美一区二区 | 亚洲精品在| 有码中文 | 日韩在线欧美 | 黄色片网站视频 | 人人草人人看 | 红猫大本营在线观看的 | 少妇h视频 | 日韩午夜激情视频 | 亚洲一区二区人妻 | 在线观看av资源 | 男人的天堂毛片 | 人人干人人艹 | 日韩不卡在线观看 | 777在线视频 | 涩涩网站在线观看 | 在线观看av大片 | 久久久久久黄色 | 日韩免费三级 | 亚洲欧美精选 | 校园春色亚洲色图 | 亚洲午夜精品久久久久久人妖 | 女人叉开腿让男人桶 | 日韩一级片在线观看 | 在线播放你懂得 | 久久亚洲精品小早川怜子 | 黄色网炮 | 樱花电影最新免费观看国语版 | 国产在线精品一区二区三区 | 日韩精品在线网站 | 国产精品人人爽人人爽 | 肮脏的交易在线观看 | 成人91在线观看 | 羞羞动漫在线观看 | 国产精品久久久久久久久借妻 | 免费网站av | 一本色道久久综合亚洲精品图片 | 色四月| www.精品| 久久精品久久久久久 | 欧美国产一二三区 | 香蕉视频一区二区三区 | 欧美日韩亚洲成人 | 成年人免费大片 | 日韩视频国产 | 国产极品免费 | 成人啪啪| 农村激情伦hxvideos | 免费日韩精品 | 99re只有精品 | 99久久99九九99九九九 | 麻豆亚洲av熟女国产一区二 | 国产无遮挡免费 | 91在线视频免费看 | 97国产资源 | 波多野在线播放 | 我们2018在线观看免费版高清 | 欧美高清videos高潮hd | 黄色图片小说 | 99riav国产| 乌克兰黄色片 | 国产青青草 | 亚洲电影在线观看 | 麻豆视频传媒入口 | 久久国产视频网站 | 亚洲va在线∨a天堂va欧美va | jizz欧美大全 | 久久精品精品 | 亚洲综合另类小说 | 久久精品www人人爽人人 | 无码人妻丰满熟妇奶水区码 | 爱逼综合网 | 一级黄色片a | 啪啪av网| 香蕉视频在线播放 | 国产成人在线免费视频 | 蜜桃精品噜噜噜成人av | 欧美久久久影院 | 国产在线视频你懂的 | 特黄特色大片bbbb | 国产日产欧美一区二区 |