STM32练手项目 震动感应灯
2022-09-26 来源:csdn
这是一个调库的成品
编译环境 keil 5 固件库
材料:
stm32f103C8t6 继电器 震动感应模块
usb转TTL usb 灯 一些杜邦线
接线
剪开usb 灯 里面 有两条线 一条红色一条白色
红色 连接到继电器的常开端
白线 连接板子的gnd
继电器的
NI 连接到 板子的A3
GND 连接到GND
VCC 连接到板子的3.3v
公共端 连接到 3.3v
震动模块 vcc 接3.3 或者5v
GDN 接GND
DO 连接到板子的A1 位置
我们使用usb 转TTL 进行下载 程序
改成这个 就行
代码部分
需要这么多文件
main .c 部分
#include 'stm32f10x.h'
#include 'led.h'
#include 'relay.h'
#include 'shock.h'
void delay(uint16_t time)
{
uint16_t i =0;
while(time--)
{
i=12000;
while(i--);
}
}
int main()
{
LED_init();
relay_init();
shock_init();
GPIO_SetBits(GPIOA,GPIO_Pin_3);
while(1)
{
if( GPIO_ReadInputDataBit( GPIOA, GPIO_Pin_1)==0)
{
GPIO_ResetBits( GPIOA, GPIO_Pin_3);
delay(1000);
GPIO_SetBits(GPIOA,GPIO_Pin_3);
}else {
GPIO_SetBits(GPIOA,GPIO_Pin_3);
}
}
}
relay.c 部分 继电器
#include 'relay.h'
#include 'stm32f10x.h'
void relay_init(void)
{
GPIO_InitTypeDef relay_init;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
relay_init.GPIO_Mode =GPIO_Mode_Out_PP;
relay_init.GPIO_Pin =GPIO_Pin_3;
relay_init.GPIO_Speed =GPIO_Speed_10MHz;
GPIO_Init(GPIOA, &relay_init);
}
shock .c 震动模块
#include 'shock.h'
#include 'stm32f10x.h'
void shock_init(void)
{
GPIO_InitTypeDef shock_init;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
shock_init.GPIO_Mode = GPIO_Mode_IPD;
shock_init.GPIO_Pin = GPIO_Pin_1;
shock_init.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init( GPIOA,&shock_init);
}
.h 文件的配置
relay
#include 'stm32f10x.h'
void relay_init(void);
shock
#include 'stm32f10x.h'
void shock_init(void);
上一篇:stm32串口的学习
下一篇:STM32 构建库函数