STM32F103控制继电器代码
时间: 2023-09-25 19:12:29 浏览: 190
以下是一个简单的STM32F103控制继电器的代码示例:
```c
#include "stm32f10x.h"
#define RELAY_PIN GPIO_Pin_12
#define RELAY_PORT GPIOB
void delay_ms(uint32_t ms) {
while (ms--) {
uint32_t i = 5000;
while (i--) {
__ASM("nop");
}
}
}
int main(void) {
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = RELAY_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(RELAY_PORT, &GPIO_InitStructure);
while (1) {
GPIO_SetBits(RELAY_PORT, RELAY_PIN); // 继电器吸合
delay_ms(1000);
GPIO_ResetBits(RELAY_PORT, RELAY_PIN); // 继电器断开
delay_ms(1000);
}
return 0;
}
```
这个代码使用了STM32F103的GPIOB口控制一个继电器,通过GPIO_SetBits和GPIO_ResetBits函数分别控制GPIO引脚输出高电平和低电平,从而控制继电器的开关。同时还加入了一个简单的延时函数delay_ms以实现周期性的开关动作。
阅读全文