STM32Cube的串口設置(一)即學即用

串口系列
STM32Cube的串口設置(一)即學即用
STM32Cube的串口設置(二)一個串口接收另一個串口發送
串口實戰
STM32Cube的串口實戰(一)GPS+BD模塊

一、什麼是串口

串行通信接口,用來收發東西的,作爲一種有線通行手段,瞭解到這裏就行了!

二、操作步驟

要求:通過串口向PC發送一段字符

1、根據自己的stm32的芯片型號來選擇,我這裏是STM32F767IGTx

在這裏插入圖片描述

2、選好芯片之後照舊設置RCC爲外部時鐘

在這裏插入圖片描述

3、使能串口1(usart1),如圖:

模式設爲異步(Asynchronous)其他默認,波特率可以自己改,默認爲115200Bits/s。
在這裏插入圖片描述

4、看原理圖,找到串口對應引腳,如圖:

我這裏是

PA10——>USART1_RX  
PA9——>USART1_TX

在這裏插入圖片描述

5、根據對應引腳設置串口引腳,如圖:

找到PA9、PA10引腳左鍵點擊分別選擇USART1_TX和USART1_RX
(不用擔心選錯選反,針腳的功能是ST公司已經定義好了的)
在這裏插入圖片描述

6、設置時鐘樹,如圖:

這裏會搞的按自己習慣搞,不會搞的默認就好,但是不能有裏面是紅色的框(紅色框就是錯了意思)
在這裏插入圖片描述

7、項目設置,如圖:

紅框裏的按照自己的Keil版本來
在這裏插入圖片描述
個人喜歡把.c/.h文件分開
在這裏插入圖片描述

8、點擊右上角的‘GENERATE CODE’直接生成代碼,如圖:

在這裏插入圖片描述

9、生成代碼後用Keil打開項目並在Application/User中找到usart.c並在/USER CODE BEGIN 0/後添加如下代碼,如圖:

在這裏插入圖片描述

#include <stdio.h>
struct __FILE 
{ 
	int handle; 
}; 
FILE __stdout;       
void _sys_exit(int x) 
{ 
	x = x; 
} 
int fputc(int ch, FILE *f)
{ 	
	while((USART1->ISR&0X40)==0);//循環發送,直到發送完畢   
	USART1->TDR=(uint8_t)ch;      
	return ch;
}

這一步是將stdio.c的printf函數輸出指向串口

10、在main.c中主循環內添加如下代碼並測試,如圖:

在這裏插入圖片描述

printf("今天搞定串口\r\n");
HAL_Delay(1000);

編譯、下載,打開任意一個串口調試助手,設置好對應的波特率和串口號,其餘按照圖中設置(有心的同學已經發現在cube裏設置串口的時候需要設置的參數和下面的幾項基本一致)之後打開串口

在這裏插入圖片描述
得到結果如圖:
在這裏插入圖片描述
每秒收到一次數據(後面的時間是勾選了串口調試助手的時間戳之後生成的,主要爲了給大家看時間間隔)。

		  Good Game!!!!!!

接下來會推出一系列的關於串口使用的分享,有需要的猿們敬請關注!!!!!

以上內容歡迎大家轉載引用,標明出處即可!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章