STM32
登录
直播中
无厘头
13年用户
546经验值
擅长:基础元器件
私信
关注
[问答]
STM32F407ZE是怎样通过串口发送接收PC端串口助手消息的
开启该帖子的消息推送
stm32f407zet6
PC端口
串口
STM32
F407ZE是怎样通过串口发送接收PC端串口助手消息的?并控制LED灯的亮灭呢?
回帖
(1)
张舒婷
2021-11-25 14:38:07
STM32F407ZE 通过串口发送接收PC端串口助手消息,并控制LED灯的亮灭
STM32串口USART1接收字符串
具体代码解析如下:
ustart.h部分
#ifndef USTART_H
#define USTART_H
#include
#include
#include "sys.h"
void USART1_Init();
void USART_SendString(USART_TypeDef* USARTx, char *DataString);
#endif
ustart.c部分
#include "ustart.h"
#include
void USART1_Init()
{
GPIO_InitTypeDef GPIOInit_Struct;
USART_InitTypeDef USARTInit_Struct;
//1、使能时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
//2、初始化对应的IO引脚复用为USART1功能
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
GPIOInit_Struct.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
GPIOInit_Struct.GPIO_Mode = GPIO_Mode_AF;
GPIOInit_Struct.GPIO_OType = GPIO_OType_PP;
GPIOInit_Struct.GPIO_Speed = GPIO_Fast_Speed;
GPIOInit_Struct.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOA,&GPIOInit_Struct);
//将PA9 PA10复用为USART1功能
GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);
//3、USART1初始化
USARTInit_Struct.USART_BaudRate = 115200; //波特率
USARTInit_Struct.USART_Parity = USART_Parity_No; //无校验位
USARTInit_Struct.USART_StopBits = USART_StopBits_1; //1位停止位
USARTInit_Struct.USART_WordLength = USART_WordLength_8b; //8位数据位
USARTInit_Struct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式
USARTInit_Struct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件控制流
USART_Init(USART1,&USARTInit_Struct);
//4、开启串口
USART_Cmd(USART1,ENABLE);
}
void USART_SendString(USART_TypeDef* USARTx, char *DataString)
{
int i = 0;
USART_ClearFlag(USARTx,USART_FLAG_TC); //发送字符前清空标志位(否则缺失字符串的第一个字符)
while(DataString
!= '