单片机
返回首页

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);


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 开关电源的基本组成及工作原理

  • 带有短路保护系统的5V直流稳压电源电路图

    相关电子头条文章