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

关于固件库的安装 可以 看前面的那个文章

如果做不出来 建议不要 干这行了

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值