串口通信实例

STM32CubeMX基于HAL库实现简单串口通信

板子:STM32F103C8

编译工具:Keil+STM32CubeMX

烧录工具:FlyMcu

串口调试程序:XCOM

实验要求:

1)设置波特率为115200,1位停止位,无校验位;

2)STM32系统给上位机(win10)连续发送“hello windows!”

一、流水灯项目创建

首先在STM32CUBE中选择对应的单片机,这里用的是STM32F103C8T6。
创建步骤:请添加图片描述
创建好项目之后选择要用到的引脚,本次使用A4,B5,C14三个引脚
注意要选择GPIO_output。
请添加图片描述
配置调试接口请添加图片描述
配置GPIO
请添加图片描述
项目设置
版本要选择MDK5
请添加图片描述
生成项目请添加图片描述
直接打开项目,跳转到KEIL

打开main函数,找到里面的循环,在循环中添加流水灯代码

		//高电平点亮A4
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);
		//延时一秒
		HAL_Delay(1000);
		//低电平熄灭A4
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);
		
		
		//高电平点亮B5
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET);
		//延时一秒
		HAL_Delay(1000);
		//低电平熄灭B5
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_RESET);
		
		
		//高电平点亮C14
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,GPIO_PIN_SET);
		//延时一秒
		HAL_Delay(1000);
		//低电平熄灭C14
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,GPIO_PIN_RESET);

请添加图片描述

二、实现效果

keil项目设置(每次都要弄)
请添加图片描述
先搭建项目再debug请添加图片描述

点击System Analyezer window,再点击Logic Analyzer请添加图片描述
点击setup
请添加图片描述
添加要观察的引脚
在这里插入图片描述
分别为A4,B5和C14
在这里插入图片描述
添加完毕后点击close

然后点击run观察波形

波形如下
在这里插入图片描述

三、STM32串口通信USART

(一)USART介绍

USART,英文全称——Universal Synchronous/Asychronous Receiver/Transmitter,即通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。它提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。使用多缓冲器配置的DMA方式,可以实现高速数据通信。

(二)实验操作

首先使用STM32CUBE来创建Keil项目
在这里插入图片描述
选择A->Z,USART1,Mode选择Asynchronous异步通信,设置波特率、数据长度、奇偶校验、校验。
在这里插入图片描述

切换到ProjectManager,输入项目名,Application Structure选择Basic,IDE中选择MDK-ARM。

在这里插入图片描述
点击Code Generater生成对应的.c 和.h文件,然后Generate Code用Keil打开项目。

打开的项目中在usart.c中有自动生成的代码
在这里插入图片描述
在main.c的while循环中添加代码
在这里插入图片描述
点击上面的魔法棒,用仿真器进行仿真
在这里插入图片描述
然后build→运行

运行之后打开UART1
在这里插入图片描述
运行结果:
在这里插入图片描述

四、参考文章

STM32CubeMX基于HAL库实现简单串口通信
基于 MDK 创建 STM32 汇编程序:串口输出 Hello world
STM32最小核心板F103串口通信USART

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值