STM32串口通信入门

一、串口协议

RS-232是一种标准的串行通信协议,通常用于在计算机和外部设备之间传输数据。它规定了数据传输的电气特性、连接器类型、数据格式和信号速率等方面的细节。
RS-232标准定义了串行通信的电平,通常是正负12V,其中正电平表示逻辑"0",负电平表示逻辑"1"。这与TTL(晶体管-晶体管逻辑)电平不同。
RS-232电平与TTL电平的区别:
RS-232电平使用正负12V的电压表示逻辑状态,电压较高的电平表示逻辑"0",电压较低的电平表示逻辑"1"。
TTL电平使用低电平(通常0V至0.8V)表示逻辑"0",高电平(通常2.4V至5V)表示逻辑"1"。TTL电平常用于数字电路和微控制器之间的通信。

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

1.使用STM32CubeMX配置项目

1.在STM32CubeMX中选择相应芯片
这里使用STM32F103C8芯片进行实现
在这里插入图片描述
2.在芯片图中配置引脚
如下图所示
在这里插入图片描述
3.配置RCC
在这里插入图片描述
4.配置SYS
在这里插入图片描述
5.配置USART1
在这里插入图片描述
6.配置时钟
在这里插入图片描述
7.在项目设置中进行如下设置
在这里插入图片描述
在这里插入图片描述

2.在keil中编译代码

1.在main.c文件中编写实现连续输出“hello windows!”
在这里插入图片描述
2.进行编译
在这里插入图片描述
3.进行烧录
在这里插入图片描述
4.运行结果
在这里插入图片描述

3.使用示波器进行观察

1.设置DEBUG中的选项
在这里插入图片描述
2.设置示波器
下方Display Type的选项选择Bit
在这里插入图片描述
3.输出波形
在这里插入图片描述
由图可得输出波形正确,波特率为0.998481Hz

二、HAL库中断方式进行串口通信

1.在STM32CubeMX修改引脚

设置PC-13为OPIO_Output,输出项目在这里插入图片描述

2.在keil中编程

1.在mian.c中定义字符
在这里插入图片描述
2.编写中断函数
在这里插入图片描述
3.编写打印输出“hello windows!”
在这里插入图片描述

4.编译
在这里插入图片描述
5.烧录
在这里插入图片描述
6.实现效果

fireTools 2023-10-24 20-01-42

三、总结

在实验开始之前,需要深入理解串口通信的基本原理。了解了不同的串口协议、波特率、数据位、停止位等概念。STM32微控制器的串口模块,包括USART1、USART2等。了解这些模块的特性和寄存器设置对于正确配置串口通信至关重要。通过这个入门实验,我获得了对STM32串口通信的基本理解,并掌握了一些实用的技能。串口通信是嵌入式开发中常用的通信方式,我相信这个基础将在将来的项目中发挥重要作用。

四、参考

HAL库中断方式进行串口通信

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值