[STM32F4] stm32按键灯亮程序

[复制链接]
1537|12
 楼主| qiangweii 发表于 2016-8-13 16:02 | 显示全部楼层 |阅读模式
//分别按下S1~S4,D1~D4分别点亮
#include "stm32f10x.h"
void Delay(unsigned intx);

int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD| RCC_APB2Periph_GPIOE,ENABLE);//IO口使能设置
  GPIO_InitTypeDefGPIO_InitStructure;   //定义结构体
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; //LED管脚   
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOC,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_13;     //LED管脚
  GPIO_Init(GPIOD,&GPIO_InitStructure);
  
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4| GPIO_Pin_5;//按键管脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;  //设置为上拉输入
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOE,&GPIO_InitStructure);
  
  
  while(1)
  {
   if(!(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_5)))
     GPIO_SetBits(GPIOC,GPIO_Pin_6);  
   else
     GPIO_ResetBits(GPIOC,GPIO_Pin_6);
   if(!(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)))
     GPIO_SetBits(GPIOC,GPIO_Pin_7);
   else
     GPIO_ResetBits(GPIOC,GPIO_Pin_7);
   if(!(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)))
     GPIO_SetBits(GPIOD,GPIO_Pin_13);
   else
     GPIO_ResetBits(GPIOD,GPIO_Pin_13);
   if(!(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)))
     GPIO_SetBits(GPIOD,GPIO_Pin_6);
   else
     GPIO_ResetBits(GPIOD,GPIO_Pin_6);
   

  }
}


void Delay(unsigned intx)
{
unsigned int t;
t=x;
while(t--);
}
 楼主| qiangweii 发表于 2016-8-13 16:03 | 显示全部楼层
STM32互连型系列产品分为两个型号: STM32F105和STM32F107。
litengg 发表于 2016-8-13 16:07 | 显示全部楼层
不知道楼主是用的哪一款型号!!!
androidbus 发表于 2016-8-13 16:12 | 显示全部楼层
怎么没有电路设计图呢?
feiqi1 发表于 2016-8-13 16:15 | 显示全部楼层
void Delay(unsigned intx)
{
unsigned int t;
t=x;
while(t--);
}
这个延时函数是延时多少时间呀?
boy1990 发表于 2016-8-13 16:35 | 显示全部楼层
GPIO_InitTypeDefGPIO_InitStructure;   //定义结构体 这个一定不能忘记了!!
mmuuss586 发表于 2016-8-13 19:56 | 显示全部楼层
谢谢分享;
capturesthe 发表于 2016-8-13 20:59 | 显示全部楼层
这个按键没有实现自锁的功能啊
huangcunxiake 发表于 2016-8-13 22:23 | 显示全部楼层
最好再设计个硬件的,按下时候按键下面的灯点亮,看着炫酷。
天灵灵地灵灵 发表于 2016-8-14 14:36 | 显示全部楼层
可以在一个按键下搞两对触电,对于其中一对是直接接LED,作为单独供电系统,这样就不影响LED。
长的帅怪我落 发表于 2016-8-16 17:09 | 显示全部楼层
虽然不需要,但是还是谢谢楼主分享
 楼主| qiangweii 发表于 2016-8-18 20:02 | 显示全部楼层
天灵灵地灵灵 发表于 2016-8-14 14:36
可以在一个按键下搞两对触电,对于其中一对是直接接LED,作为单独供电系统,这样就不影响LED。 ...

是的,您的这种设计的思路很正确。
gejigeji521 发表于 2016-8-18 22:11 | 显示全部楼层
配置成IO模式,然后循环扫描检测
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

1521

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部