前言
本系列文章统一围绕STM32F103C8T6最小系统开发板进行记录,如涉及其他开发板将会特别说明。
LED
工作原理
STM32F103C8T6最小系统开发板上LED原理图如下:
- 引脚:PC13
- 工作方式:低电平点亮
配置思路
- 开启时钟:GPIOC
- 配置初始化结构体参数
- 引脚:PC13
- 输出速度:50MHz
- 输出模式:推挽输出
- 初始化GPIO。
- 操作:控制or读取状态。
代码
LED初始化函数
void led_gpio_init(void)
{
GPIO_InitTypeDef led;
// 开启GPIOC时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
// 配置PC13参数
led.GPIO_Pin = GPIO_Pin_13;
led.GPIO_Mode = GPIO_Mode_Out_PP;
led.GPIO_Speed = GPIO_Speed_50MHz;
// 调用GPIO初始化函数
GPIO_Init(GPIOC, &led);
// 初始化LED关
GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_SET);
}
LED控制函数
对LED进行操作并读取其当前状态:输出低电平时LED点亮,输出高电平时LED关闭。
u8 led_ctl(u8 op)
{
GPIO_WriteBit(LED_GPIO_PORT, LED_GPIO_PIN, op);
return GPIO_ReadOutputDataBit(LED_GPIO_PORT, LED_GPIO_PIN);
}
继电器
继电器实现的控制电路优点:
- 用低电压控制高电压
- 远距离控制
- 自动控制
工作原理
通常一个基本的继电器模块有着以下引脚:
- COM:公共端
- NC(normal closed):常闭端
- NO(normal open):常开端
- VCC:电源输入
- GND:地
- Signal:信号输入,可连接GPIO引脚。
jpg
工作方式:
- 当输入信号为高电平时,COM与NC端相连。
- 当输入信号为低电平时,COM与NO端相连。
默认COM与NO端相连,可通过万用表通断档测量判断。
接线
实验目的:通过对继电器的控制,实现对LED的开关控制。
- COM:连接开发板GND脚。
- NC:连接开发板PC13引脚,以对LED进行控制。
- Signal:连接开发板IO引脚,进行高低电平的输出。
工作原理:继电器默认COM与NO相连,当开发板IO引脚输出高电平给继电器时,继电器COM与NC相连,即PC13输出低电平,LED会被点亮。
配置思路
- 开启时钟:GPIOB
- 配置初始化结构体参数:
- 引脚:PB9
- 输出速度:50MHz
- 输出模式:推挽输出
- 初始化GPIO。
- 控制操作:控制or读取状态。
代码
继电器初始化函数
void relay_gpio_init(void)
{
GPIO_InitTypeDef relay;
// 开启GPIOC时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
// 配置PC13参数
relay.GPIO_Pin = GPIO_Pin_9;
relay.GPIO_Mode = GPIO_Mode_Out_PP;
relay.GPIO_Speed = GPIO_Speed_50MHz;
// 调用GPIO初始化函数
GPIO_Init(GPIOB, &relay);
return ;
}
继电器控制函数
u8 relay_ctl(u8 op)
{
GPIO_WriteBit(GPIOB, GPIO_Pin_9, op);
return GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_9);
}