这里我们使用串口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