这是一个调库的成品
编译环境 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);
关于固件库的安装 可以 看前面的那个文章
如果做不出来 建议不要 干这行了