串口系列
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!!!!!!
接下來會推出一系列的關於串口使用的分享,有需要的猿們敬請關注!!!!!
以上內容歡迎大家轉載引用,標明出處即可!!!!!