文章目录
一、串口协议
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串口通信的基本理解,并掌握了一些实用的技能。串口通信是嵌入式开发中常用的通信方式,我相信这个基础将在将来的项目中发挥重要作用。