之后便可以通過
Stm32_Serial.read(Receive_Data_Pr,sizeof(Receive_Data_Pr));
read函數讀取串口接收到的字節,之后通過定義的通信協議再進行和校驗與數據解析即可stm32向ROS主控發送數據。
ROS主控向stm32發送數據
ROS主控向stm32發送數據的代碼如下:
將之前定義的發送數據的結構體 Send_Data的tx 中填入要發送的字節
Send_Data.tx[0]=FRAME_HEADER; //frame head 0x7B //幀頭0X7B
Send_Data.tx[1] = 0; //set aside //預留位
Send_Data.tx[2] = 0; //set aside //預留位
填好字節后,直接通過下面代碼發送即可
try
{
Stm32_Serial.write(Send_Data.tx,sizeof (Send_Data.tx)); //Sends data to the downloader via serial port //通過串口向下位機發送數據
}
catch (serial::IOException& e)
{
ROS_ERROR_STREAM("Unable to send data through serial port"); //If sending data fails, an error message is printed //如果發送數據失敗,打印錯誤信息
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
數據
+關注
關注
8文章
7004瀏覽量
88944 -
STM32
+關注
關注
2270文章
10896瀏覽量
355753 -
ROS
+關注
關注
1文章
278瀏覽量
17001
發布評論請先 登錄
相關推薦
LV接收stm32f407發送的數據
最近用LV作為接收端來接收stm32f407通過串口發出的連續數據,通過串口調試助手發現stm32發送是正常的可以用十六進制顯示,但用LV卻接收不到,沒什么顯示,哪位大神給指點下。
發表于 04-12 17:43
stm32接受不到51發送的數據
本人用stm32與51進行藍牙通訊,51側為主機,藍牙已經配對成功。但是stm32接受不到51發送的數據,用電腦串口+藍牙,stm32就能收
發表于 04-12 06:11
下位機STM32發送的數據格式與串口參數
多線程的串口通信1 下位機STM32發送的數據格式與串口參數1.1下位機上傳的數據格式:1.2串口參數2 上位機程序2.1Future:~~2.2串口參數同上~~3 QT程序設計QT走
發表于 08-24 07:19
我用stm32通過RS485發送數據到串口,串口收到數據是亂碼是怎么回事啊?
我用stm32通過RS485發送數據到串口,串口收到數據是亂碼是怎么回事啊?就是從AB端讀取的數據
發表于 11-08 09:57
STM32F103ZET6基于RS485發送接收簡單例程
這是一個STM32F103ZET6基于HAL庫的RS485發送接收簡單例程,如需后期開發只需要添加自己的串口協議。
發表于 08-29 16:08
?306次下載
stm32f407+485發送modbus RTU協議 適合初學者
任務內容用485發送modbus TCP協議,用modbus調試軟件modsim32 查看發送及響應的數據。用的是正點原子的開發板,stm32f407.任務實現485
發表于 12-24 19:16
?55次下載
485發送接收切換問題討論
485發送接收切換導致最后一位數據停止位丟失)現象現象單片機485發送接收常規做法是在發送完成中斷控制485芯片的DE/RE腳電平來切換為接收狀態。在中斷中直接切換,波形如下:上訴串口
發表于 01-14 13:20
?6次下載
評論