97色伦色在线综合视频,无玛专区,18videosex性欧美黑色,日韩黄色电影免费在线观看,国产精品伦理一区二区三区,在线视频欧美日韩,亚洲欧美在线中文字幕不卡

網(wǎng)站對(duì)接如何做班級(jí)優(yōu)化大師學(xué)生版

鶴壁市浩天電氣有限公司 2026/01/24 10:52:37
網(wǎng)站對(duì)接如何做,班級(jí)優(yōu)化大師學(xué)生版,自己做網(wǎng)站平臺(tái),重慶本地新聞一、硬件連接 模塊引腳 連接目標(biāo) 說(shuō)明 TX 串口助手接收端(RX) 交叉連接#xff0c;用于模塊發(fā)送數(shù)據(jù)到上位機(jī) RX 不接 測(cè)試階段無(wú)需發(fā)送指令#xff0c;可懸空 VCC 5V/3.3V 根據(jù)模塊版本選擇#xff1a;多數(shù)ATGM336H型號(hào)需5V供電#xff08;具體以規(guī)格書為準(zhǔn)用于模塊發(fā)送數(shù)據(jù)到上位機(jī)RX 不接 測(cè)試階段無(wú)需發(fā)送指令可懸空VCC 5V/3.3V 根據(jù)模塊版本選擇多數(shù)ATGM336H型號(hào)需5V供電具體以規(guī)格書為準(zhǔn)GND GND 必須與上位機(jī)共地否則會(huì)導(dǎo)致數(shù)據(jù)亂碼或通信失敗注意1、模塊上的led燈閃爍時(shí)相當(dāng)于提示定位信息獲取到了常量表示定位失效。2、斷電重啟模塊更新信息狀態(tài)。3、定位時(shí)天線上的陶瓷片向上陶瓷片上的金屬小點(diǎn)一面朝向天空朝向空曠的天空高樓會(huì)遮擋信號(hào)導(dǎo)致定位不到。4、模塊的通信默認(rèn)用9600波特率通信的。二、代碼部分定義部分#defineDMA_BUF_SIZE256// DMA接收緩沖區(qū)大小#defineNMEA_QUEUE_LEN8// NMEA幀隊(duì)列長(zhǎng)度#defineGNGGA_HEAD$GNGGA#defineLAT_LON_SCALE60.0f// 度分轉(zhuǎn)度的系數(shù)#defineGNGGA_MIN_FIELD_CNT6typedefstruct{uint8_tvalid;// 定位有效標(biāo)志1有效0無(wú)效chartime[7];// UTC時(shí)間HHMMSSfloatlatitude;// 緯度度charlat_dir;// 緯度方向N/Sfloatlongitude;// 經(jīng)度度charlon_dir;// 經(jīng)度方向E/Wuint8_tsat_num;// 鎖定衛(wèi)星數(shù)新增適配GNGGAuint8_tparse_ok;// 解析成功標(biāo)志}GnssInfo_t;externGnssInfo_t gnss_info;floatnmea_degree_convert(char*str);// 度分轉(zhuǎn)度externuint8_tdma_rx_buf[DMA_BUF_SIZE];externvolatileuint16_tdma_rx_len;// 開啟USART2空閑中斷__HAL_UART_ENABLE_IT(huart2,UART_IT_IDLE);// 啟動(dòng)DMA接收循環(huán)模式HAL_UART_Receive_DMA(huart2,dma_rx_buf,DMA_BUF_SIZE);voidUSART2_IRQHandler(void){HAL_UART_IRQHandler(huart2);USART2_IDLE_IRQHandler();// 處理空閑中斷}// 打印定位信息voidUSART2_IDLE_IRQHandler(void){if(__HAL_UART_GET_FLAG(huart2,UART_FLAG_IDLE)!RESET){__HAL_UART_CLEAR_IDLEFLAG(huart2);// 清除空閑中斷標(biāo)志HAL_UART_DMAStop(huart2);// 停止DMA接收// 計(jì)算接收長(zhǎng)度dma_rx_lenDMA_BUF_SIZE-__HAL_DMA_GET_COUNTER(hdma_usart2_rx);}}floatnmea_degree_convert(char*str){if(strNULL||strlen(str)4||strchr(str,.)NULL){return0.0f;}floatdegree0.0f;floatminute0.0f;chartemp[16]{0};intdot_posstrchr(str,.)-str;// 緯度DDMM.mmmm → 前2位度if(strlen(str)4dot_pos2){strncpy(temp,str,2);degreeatof(temp);minuteatof(str2);}// 經(jīng)度DDDMM.mmmm → 前3位度elseif(strlen(str)5dot_pos3){strncpy(temp,str,3);degreeatof(temp);minuteatof(str3);}else{return0.0f;}// 防止轉(zhuǎn)換后為0有效經(jīng)緯度不可能為0floatresdegree(minute/LAT_LON_SCALE);return(res0.0f)?res:0.0f;}任務(wù)調(diào)用部分//獲取信息voidStartTask01(void*argument){uint8_tnmea_buf[DMA_BUF_SIZE]{0};for(;;){if(dma_rx_len0){// 拷貝DMA接收的數(shù)據(jù)到臨時(shí)緩沖區(qū)memcpy(nmea_buf,dma_rx_buf,dma_rx_len);nmea_buf[dma_rx_len];// 字符串結(jié)束符//輸出串口接收信息HAL_UART_Transmit(huart1,(uint8_t*)dma_rx_buf,dma_rx_len,8000);printf( );// 發(fā)送到NMEA解析隊(duì)列osMessageQueuePut(myQueue01Handle,nmea_buf,0,100);// 重置DMA接收dma_rx_len0;memset(dma_rx_buf,0,DMA_BUF_SIZE);HAL_UART_Receive_DMA(huart2,dma_rx_buf,DMA_BUF_SIZE);}osDelay(5);}}//解析部分voidStartTask02(void*argument){uint8_tnmea_buf[DMA_BUF_SIZE]{0};for(;;){// 解析任務(wù)核心邏輯if(osMessageQueueGet(myQueue01Handle,nmea_buf,NULL,100)osOK){gnss_info.parse_ok0;char*gngga_framestrstr((char*)nmea_buf,GNGGA_HEAD);if(gngga_frame!NULLstrlen(gngga_frame)20){char*tokenNULL;char*save_ptrNULL;intfield_idx0;intfield_cnt0;// 臨時(shí)變量先存儲(chǔ)經(jīng)緯度字符串等定位質(zhì)量解析后再轉(zhuǎn)換charlat_str[16]{0};charlon_str[16]{0};tokenstrtok_r(gngga_frame,,,save_ptr);while(token!NULL){field_cnt;if(strlen(token)0){tokenstrtok_r(NULL,,,save_ptr);field_idx;continue;}switch(field_idx){case0:// $GNGGA幀頭校驗(yàn)if(strcmp(token,GNGGA_HEAD)!0){field_idx-1;break;}break;case1:// UTC時(shí)間HHMMSS.ssif(strlen(token)6){strncpy(gnss_info.time,token,6);gnss_info.time[6];}else{memset(gnss_info.time,0,sizeof(gnss_info.time));}break;// 先存儲(chǔ)經(jīng)緯度字符串不立即轉(zhuǎn)換case2:// 緯度字符串DDMM.mmmmstrncpy(lat_str,token,sizeof(lat_str)-1);break;case3:// 緯度方向N/Sif(token[0]N||token[0]S){gnss_info.lat_dirtoken[0];}else{gnss_info.lat_dir;}break;case4:// 經(jīng)度字符串DDDMM.mmmmstrncpy(lon_str,token,sizeof(lon_str)-1);break;case5:// 經(jīng)度方向E/Wif(token[0]E||token[0]W){gnss_info.lon_dirtoken[0];}else{gnss_info.lon_dir;}break;case6:// 定位質(zhì)量核心先解析gnss_info.valid(atoi(token)1)?1:0;// 定位有效時(shí)再轉(zhuǎn)換經(jīng)緯度關(guān)鍵修復(fù)if(gnss_info.valid){if(strlen(lat_str)4)gnss_info.latitudenmea_degree_convert(lat_str);if(strlen(lon_str)5)gnss_info.longitudenmea_degree_convert(lon_str);}break;case7:// 衛(wèi)星數(shù)gnss_info.sat_numatoi(token);break;default:if(field_idx8)// 解析到衛(wèi)星數(shù)后停止{tokenNULL;break;}break;}if(field_idx-1){tokenNULL;break;}tokenstrtok_r(NULL,,,save_ptr);field_idx;}// 放寬最終校驗(yàn)條件適配實(shí)際場(chǎng)景if(field_cnt7// 至少7個(gè)字段核心字段gnss_info.valid1// 定位質(zhì)量1gnss_info.lat_dir!// 緯度方向有效gnss_info.lon_dir!// 經(jīng)度方向有效gnss_info.latitude0.0f// 緯度0有效范圍gnss_info.longitude0.0f// 經(jīng)度0有效范圍gnss_info.sat_num1)// 衛(wèi)星數(shù)≥1放寬{gnss_info.parse_ok1;// 【調(diào)試打印】解析成功提示printf(解析成功緯度%.6f%c經(jīng)度%.6f%c,utc時(shí)間%s,定位質(zhì)量%d衛(wèi)星數(shù)%d ,gnss_info.latitude,gnss_info.lat_dir,gnss_info.longitude,gnss_info.lon_dir,gnss_info.time,gnss_info.valid,gnss_info.sat_num);}else{memset(gnss_info,0,sizeof(GnssInfo_t));printf(解析失敗字段數(shù)%d定位質(zhì)量%d衛(wèi)星數(shù)%d ,field_cnt,gnss_info.valid,gnss_info.sat_num);}}}osDelay(10);}}測(cè)試效果示意圖
版權(quán)聲明: 本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)聯(lián)系我們進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

個(gè)人網(wǎng)站建立平臺(tái)ffmpeg做視頻網(wǎng)站

個(gè)人網(wǎng)站建立平臺(tái),ffmpeg做視頻網(wǎng)站,簡(jiǎn)約風(fēng)網(wǎng)站首頁(yè)怎么做,京東網(wǎng)頁(yè)設(shè)計(jì)教程25年12月19日復(fù)盤總結(jié)#xff0c;大盤方向#xff0c;操作建議#xff0c;板塊機(jī)會(huì)#xff0c;實(shí)用干貨大盤指

2026/01/23 04:20:01

晚上正能量網(wǎng)站大全一個(gè)網(wǎng)站開發(fā)

晚上正能量網(wǎng)站大全,一個(gè)網(wǎng)站開發(fā),百度知道提問(wèn)首頁(yè),個(gè)舊建設(shè)局信息公開門戶網(wǎng)站想象一下#xff0c;無(wú)需專業(yè)設(shè)備#xff0c;僅憑一臺(tái)普通電腦就能創(chuàng)建屬于自己的數(shù)字分身#xff0c;制作專業(yè)級(jí)視頻內(nèi)容

2026/01/22 21:19:01