串口系列
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!!!!!!
接下来会推出一系列的关于串口使用的分享,有需要的猿们敬请关注!!!!!
以上内容欢迎大家转载引用,标明出处即可!!!!!