這里以一個(gè)智能車代碼工程為例,抽取串口通信部分代碼
在頭文件中,進(jìn)行串口頭文件的包含
#include < serial/serial.h >
在類的定義中,什么一個(gè) serial 類的實(shí)例
serial::Serial Stm32_Serial; //聲明串口對(duì)象
并且在類的定義中,聲明兩個(gè)結(jié)構(gòu)體,用來存儲(chǔ)接收和要發(fā)送的數(shù)據(jù)
RECEIVE_DATA Receive_Data; //The serial port receives the data structure //串口接收數(shù)據(jù)結(jié)構(gòu)體
SEND_DATA Send_Data; //The serial port sends the data structure //串口發(fā)送數(shù)據(jù)結(jié)構(gòu)體
在類的構(gòu)造函數(shù)中,配置這個(gè)串口對(duì)象的參數(shù)
private_nh.param< std::string >("usart_port_name", usart_port_name, "/dev/stm32_controller"); //Fixed serial port number //固定串口號(hào)
private_nh.param< int > ("serial_baud_rate", serial_baud_rate, 115200); //Communicate baud rate 115200 to the lower machine //和下位機(jī)通信波特率115200
這兩個(gè)參數(shù)是在launch文件中設(shè)置的,代碼里進(jìn)行參數(shù)的讀取。
usart_port_name 設(shè)置的USB設(shè)備別名
serial_baud_rate 串口通信的波特率要和stm32設(shè)置的一致
try
{
//Attempts to initialize and open the serial port //嘗試初始化與開啟串口
Stm32_Serial.setPort(usart_port_name); //Select the serial port number to enable //選擇要開啟的串口號(hào)
Stm32_Serial.setBaudrate(serial_baud_rate); //Set the baud rate //設(shè)置波特率
serial::Timeout _time = serial::Timeout::simpleTimeout(2000); //Timeout //超時(shí)等待
Stm32_Serial.setTimeout(_time);
Stm32_Serial.open(); //Open the serial port //開啟串口
}
catch (serial::IOException& e)
{
ROS_ERROR_STREAM("car_robot can not open serial port,Please check the serial port cable! "); //If opening the serial port fails, an error message is printed //如果開啟串口失敗,打印錯(cuò)誤信息
}
初始化串口配置,并開啟串口
設(shè)置的參數(shù)包括:
- 要開啟的串口號(hào)
- 設(shè)置波特率
- 超時(shí)等待
判斷串口是否被打開,打開輸出終端打印信息
if(Stm32_Serial.isOpen())
{
ROS_INFO_STREAM("car_robot serial port opened"); //Serial port opened successfully //串口開啟成功提示
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
STM32
+關(guān)注
關(guān)注
2310文章
11166瀏覽量
373577 -
串口通信
+關(guān)注
關(guān)注
34文章
1662瀏覽量
58009 -
ROS
+關(guān)注
關(guān)注
1文章
293瀏覽量
18752
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
STM32串口通信數(shù)據(jù)亂碼的相關(guān)問題
STM32串口通信以及溫度采集搞定,其中主要遇到STM32系列單片機(jī)時(shí)鐘樹的問題,串口通信遇到
發(fā)表于 06-22 08:01
?1.3w次閱讀
Stm32串口通信基礎(chǔ)實(shí)驗(yàn)
目錄二、stm32串口通信二級(jí)目錄三級(jí)目錄二、stm32串口通信1.本次實(shí)驗(yàn)使用的是
發(fā)表于 12-07 09:36
?32次下載
初步了解STM32串口通訊
STM32串口通訊一、基于寄存器與基于固件庫的編程方式的差異二、stm32串口通信實(shí)戰(zhàn)1、燒錄代碼
發(fā)表于 12-07 09:51
?13次下載
利用Simulink自動(dòng)生成STM32串口代碼
功能:利用Simulink自動(dòng)生成STM32串口代碼,在Keil中編譯后直接下載到主芯片,實(shí)現(xiàn)串口通訊的功能。
ROS與STM32串口通信代碼
這里以一個(gè)智能車代碼工程為例,抽取串口通信部分代碼 在頭文件中,進(jìn)行串口頭文件的包含 # inc
智能車ROS與STM32串口通信代碼
評(píng)論