目录
一:串口协议
1.串口通信原理
串口在嵌入式系统当中是一类重要的数据通信接口,其本质功能是作为 CPU 和串行设备间的编码转换器。当数据从 CPU 经过串行端口发送出去时,字节数据转换为串行的位;在接收数据时,串行的位被转换为字节数据。应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。典型地,串口用于 ASCII 码字符的传输。
波特率:
串口异步通信中没有时钟信号,所以需要约定好波特率,即码元长度。
起始位、停止位
数据包从起始位开始、停止位结束
常用协议
RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem。
RS232电平与TTL电平的区别
TTL电平信号之所以被广泛使用,原因是因为:通常我们采用二进制来表示数据。而且规定,+5V等价于逻辑“1”,0V等价于逻辑“0”。这样的数据通信及电平规定方式,被称做TTL(晶体管-晶体管逻辑电平)信号系统。这是计算机处理器控制的设备内部各部分之间通信的标准技术。
rs232是个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries AssociaTIon,EIA) 所制定的异步传输标准接口。通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和 COM2。RS232的电平标准为+12V为逻辑负,-12为逻辑正,TTL电平为5V为逻辑正,0为逻辑负
二、利用 stm32CubeMX完成任务
1.流水灯
(1)下载stm32CubeMX
官网:
STM32CubeMX - STM32Cube initialization code generator - STMicroelectronics
由于STM32CubeMX是Java实现的,需要安装jdk环境。
JDK
(2)配置环境(根据截图一步一步操作)
代码:
#include "main.h"
#include "gpio.h"
int main(void)
{
SystemClock_Config();//???????
MX_GPIO_Init();//gpio???
while (1)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);//PA7??
HAL_Delay(500);//??0.5s
HAL_GPIO_WritePin