STM32练手项目 震动感应灯
这是一个调库的成品
编译环境 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);
关于固件库的安装 可以 看前面的那个文章
如果做不出来 建议不要 干这行了
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
