通過本篇的學習,會進一步認識到CubeMX設定的簡單化。
串列埠作為 MCU 的重要外部介面,同時也是軟體開發重要的偵錯手段,其重要性不言而喻。
現在基本上所有的 MCU 都會帶有串列埠,STM32 自然也不例外。
1、在功能選擇區搜尋USART1
2、模式選擇Asynchronous
3、功能設定區點選NVIC Settings,勾選使能串列埠中斷。
RCC時鐘設定如前文一樣(此處一般情況是不變的)。
【STM32F4】HAL庫 CubeMX(一)--------建立工程(點亮LED)
由於串列埠通訊的函數使用有些不方便,為了使用方便,我們重新定義了一些函數,使得可以類比C語言,用scanf作為輸入,printf作為輸出。
1、開啟生成的程式碼,點選檔案,copy以下程式碼
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
return ch;
}
int fgetc(FILE *f)
{
uint8_t ch = 0;
HAL_UART_Receive(&huart1, &ch, 1, 0xffff);
return ch;
}
2、在對應.h檔案新增這個標頭檔案
#include <stdio.h>
3、一切準備就緒,讓我們根據原子的實驗寫HAL庫的main函數吧(由於我們更改了函數,所以操作起來比庫函數簡單很多)
char t;
scanf("%c",&t);
HAL_Delay(1000);
printf(您傳送的資訊是 %c\n",t);
至此,串列埠的操作是不是都掌握了呢。串列埠作為一個通訊介面,在偵錯程式碼的時候有意想不到的便利喲。-------操作是不是也很簡單呢