hal 双串口同时接收丢失数据_【STM32Cube_06】使用USART发送和接收数据(查询模式)...
生活随笔
收集整理的這篇文章主要介紹了
hal 双串口同时接收丢失数据_【STM32Cube_06】使用USART发送和接收数据(查询模式)...
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
尋求更簡潔舒適的閱讀體驗,請移步Mculover666的個人博客:
【STM32Cube_06】使用USART發(fā)送和接收數(shù)據(jù)(查詢模式)?www.mculover666.cn本篇文章主要介紹如何使用STM32CubeMX初始化STM32L431RCT6的USART,并使用查詢模式發(fā)送數(shù)據(jù),使用查詢模式接收數(shù)據(jù)。
1. 準備工作
硬件準備
- 開發(fā)板 首先需要準備一個開發(fā)板,這里我準備的是STM32L4的開發(fā)板(BearPi):
軟件準備
- 需要安裝好Keil - MDK及芯片對應的包,以便編譯和下載生成的代碼;
- 準備一個串口調(diào)試助手,這里我使用的是Serial Port Utility;
2.生成MDK工程
選擇芯片型號
打開STM32CubeMX,打開MCU選擇器:
搜索并選中芯片STM32L431RCT6:
配置時鐘源
- 如果選擇使用外部高速時鐘(HSE),則需要在System Core中配置RCC;
- 如果使用默認內(nèi)部時鐘(HSI),這一步可以略過;
這里我都使用外部時鐘:
配置串口
小熊派開發(fā)板板載ST-Link并且虛擬了一個串口,原理圖如下:
這里我將開關(guān)撥到AT-MCU模式,使PC的串口與USART1之間連接。
接下來開始配置USART1:
配置時鐘樹
STM32L4的最高主頻到80M,所以配置PLL,最后使HCLK = 80Mhz即可:
生成工程設(shè)置
代碼生成設(shè)置
最后設(shè)置生成獨立的初始化文件:
生成代碼
點擊GENERATE CODE即可生成MDK-V5工程:
3. 在MDK中編寫、編譯、下載用戶代碼
編寫查詢模式發(fā)送和接收代碼
編寫 main 函數(shù)如下:
int main(void) {/* USER CODE BEGIN 1 */char str[12] = "Hello Worldn";char recv_buf[12] = {0};/* USER CODE END 1 */HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 */HAL_UART_Transmit(&huart1, (uint8_t*)str, 12, 0xFFFF);/* USER CODE END 2 */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 *///接收12個字節(jié)的數(shù)據(jù),不超時if(HAL_OK == HAL_UART_Receive(&huart1, (uint8_t*)recv_buf, 12, 0xFFFF)){//將接收到的數(shù)據(jù)發(fā)送HAL_UART_Transmit(&huart1, (uint8_t*)recv_buf, 12, 0xFFFF);}}/* USER CODE END 3 */ }編譯代碼
編譯整個工程:
設(shè)置下載器
實驗現(xiàn)象
下載運行后,實驗現(xiàn)象如下:
至此,我們已經(jīng)學會了如何配置USART使用查詢模式發(fā)送和接收數(shù)據(jù),下一節(jié)將講述如何配置USART使用中斷模式接收數(shù)據(jù)。
更多精彩文章及資源,請關(guān)注我的微信公眾號:『mculover666』。
總結(jié)
以上是生活随笔為你收集整理的hal 双串口同时接收丢失数据_【STM32Cube_06】使用USART发送和接收数据(查询模式)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java基础案例教程前4章知识点_jav
- 下一篇: java查看weblogic服务器_ja