打印
[STM32F0]

NUCLEO小板按键的问题

[复制链接]
985|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
JY-DX-JY|  楼主 | 2015-5-16 21:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用NUCLEO小板写了个指示灯的程序,可以了。
接下来我又写了个按键的,控制灯,死活不行。
程序如下:
#include   "stm32f0xx.h"
  #include   "stm32f0xx_conf.h"
  #include   "stm32f0xx_it.h "
  #include  "system_stm32f0xx.h"
  //#include  "stm32f0xx_nucleo.h"

  #include   <stdio.h>
  #include   <string.h>
#define led_gpio GPIOA                                                //((GPIO_TypeDef *) GPIOA_BASE)
#define led GPIO_Pin_5                                                //led???GPIOA_5
#define led_turn    GPIO_WriteBit(led_gpio,led,(BitAction)!GPIO_ReadOutputDataBit(led_gpio,led))

#define key_gpio GPIOC
#define key  GPIO_Pin_13

void led_init()
{
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);                        //????
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOC, ENABLE);
        GPIO_InitStructure.GPIO_Pin=led;                                                                                                                                                                                //?????
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
       
        GPIO_Init(GPIOA, &GPIO_InitStructure);
       
         /* Configure PA0 pin as input floating */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
        GPIO_Init(GPIOC, &GPIO_InitStructure);
}
void delay_ms(unsigned int Counter)
{
        unsigned int i;
        for(;Counter!=0;Counter--)
        {
                i=10301;
                while(i--);
        }
}       
/********************************************************************************
????: main()
?    ?: ?????
?    ?: ?
? ? ?: ?         


*********************************************************************************/
int main(void)
{              
          
        //SystemInit(); //????????,?????????,????????         
        led_init();             
  while(1)
        {
                if(GPIO_ReadOutputDataBit(key_gpio,key)==0)
                {
                        delay_ms(10);
                        if(GPIO_ReadOutputDataBit(key_gpio,key)==0)
                                while(GPIO_ReadOutputDataBit(key_gpio,key)==0);
                        led_turn;
                        //delay_ms(150);
                }
                       
  }
                                                       
                                 
                
                     
}

大神给看看,哪里有问题?谢谢!

沙发
JY-DX-JY|  楼主 | 2015-5-16 21:15 | 只看该作者
好了,改成如下就好了。
if(GPIO_ReadInputDataBit(key_gpio,key)==0)
                {
                        delay_ms(10);
                        if(GPIO_ReadInputDataBit(key_gpio,key)==0)
                                while(GPIO_ReadInputDataBit(key_gpio,key)==0);
                        led_turn;
                        //delay_ms(150);
                }

使用特权

评论回复
板凳
mark0668| | 2015-5-16 21:22 | 只看该作者
JY-DX-JY 发表于 2015-5-16 21:15
好了,改成如下就好了。
if(GPIO_ReadInputDataBit(key_gpio,key)==0)
                {

是可以的

使用特权

评论回复
地板
mark0668| | 2015-5-16 21:32 | 只看该作者
JY-DX-JY 发表于 2015-5-16 21:15
好了,改成如下就好了。
if(GPIO_ReadInputDataBit(key_gpio,key)==0)
                {

NUCLEO  你那个板载那个USB串口可以用吗?

使用特权

评论回复
5
JY-DX-JY|  楼主 | 2015-5-16 21:34 | 只看该作者
还没试,我就试了指示灯和按键。

使用特权

评论回复
6
123tango| | 2015-5-17 09:31 | 只看该作者
mark0668 发表于 2015-5-16 21:32
NUCLEO  你那个板载那个USB串口可以用吗?

我的可以啊

使用特权

评论回复
7
mark0668| | 2015-5-17 09:32 | 只看该作者

嗯,我昨晚安装好了,是GHOST系统问题缺少文件

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:晴天响霹雳,平地一声雷。

245

主题

3351

帖子

30

粉丝