【STM32F4】HAL庫 CubeMX(三)--------串列埠實驗

2020-10-09 15:01:37


# 前言 在前面已經學習了LED、BEEP以及按鍵的操作,本篇部落格將繼續和大家學習關於串列埠通訊的設定。

通過本篇的學習,會進一步認識到CubeMX設定的簡單化。


一、串列埠通訊

串列埠作為 MCU 的重要外部介面,同時也是軟體開發重要的偵錯手段,其重要性不言而喻。
現在基本上所有的 MCU 都會帶有串列埠,STM32 自然也不例外。

二、串列埠通訊實驗

1.引腳設定

1、在功能選擇區搜尋USART1
在這裡插入圖片描述
2、模式選擇Asynchronous在這裡插入圖片描述
3、功能設定區點選NVIC Settings,勾選使能串列埠中斷。
在這裡插入圖片描述

2.時鐘設定

RCC時鐘設定如前文一樣(此處一般情況是不變的)。
【STM32F4】HAL庫 CubeMX(一)--------建立工程(點亮LED)

3.生成程式碼

由於串列埠通訊的函數使用有些不方便,為了使用方便,我們重新定義了一些函數,使得可以類比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);

總結

至此,串列埠的操作是不是都掌握了呢。串列埠作為一個通訊介面,在偵錯程式碼的時候有意想不到的便利喲。-------操作是不是也很簡單呢
在這裡插入圖片描述