STM32串口通信的实例(内附详细代码)

这里我们使用串口1,来通过我们发送的数据来决定去实现相应的操作。

示例是当单片机串口接收到数据后控制LED1的亮灭,并且将数据发送到上位机

首先我们的LED1的初始化,当然PB0连接的是蜂鸣器,这边就一起配置,首先初始化这俩个引脚。

LED1灯和BUZZER的配置和相关函数

led.c

#include "stm32f10x.h"                  // Device header
#include "hal_led.h"

static void hal_ledconfig(void);//外部接口
void hal_LEDInit(void)
{
	hal_ledconfig();

}
static void hal_ledconfig(void)
{
		GPIO_InitTypeDef   GPIOInitStructure;//创建GPIO结构体变量
		//用到了GPIOA和GPIOB,打开
		RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//打开GPIOA的时钟
		RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//打开GPIOB的时钟
		//用到什么外设就需要打开对应外设的时钟,不然初始化不会成功
		GPIOInitStructure.GPIO_Pin=LED1_Pin;//LED1_Pin是对GPIOA_Pin1的宏定义目的是便于移植
		GPIOInitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//这里我们需要控制灯所以将引脚设置成推挽输出模式
		GPIOInitStructure.GPIO_Speed=GPIO_Speed_50MHz;//速度一般设置成50MHZ,当然你们可以自己去配置成其他的
		
		GPIO_Init(LED1_PORT,&GPIOInitStructure);//将GPIOA_Pin_1的初始化结构体参数初始化
		GPIO_ResetBits(LED1_PORT,LED1_Pin);//关闭灯
		
		GPIOInitStructure.GPIO_Pin=BUZ_Pin;//再给GPIOB_Pin_0配置,BUZZER和LED1的配置相同这边就不重复说明了
		GPIOInitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
		GPIOInitStructure.GPIO_Speed=GPIO_Spe
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值