当前位置: 首页 > news >正文

angular 做的网站广告设计与制作短期培训班

angular 做的网站,广告设计与制作短期培训班,网校网站开发,公司注册资金实缴政策1、实验内容 S4、S5分别接PB12和PB13,实验要求,按下S4,D1亮,D2灭;按下S5,D2亮,D1灭。 由于按键学习的是GPIO口的输入功能,和输出功能的配置略有区别。本次通过按键触发相应功能没有…

1、实验内容

S4、S5分别接PB12和PB13,实验要求,按下S4,D1亮,D2灭;按下S5,D2亮,D1灭。

由于按键学习的是GPIO口的输入功能,和输出功能的配置略有区别。本次通过按键触发相应功能没有使用中断,完全是软件控制。

2、代码实现

(1)GPIO口输入功能配置-按键初始化(封装成函数)

#include "stm32f10x.h"                  // Device header
#include "delay.h"
void Key_Init(void)
{/*GPIO初始化*/GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;/*开启时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);		//开启GPIOB的时钟GPIO_Init(GPIOB, &GPIO_InitStructure);						//将PB12和PB13引脚初始化为上拉输入
}

开启GPIOB时钟,配置2个按键的输入模式为上拉输入,速度50MHz,端口初始化。

(2)读取按键键值的函数

uint8_t Key_GetNum(void)
{uint8_t KeyNum = 0;		//定义变量,默认键码值为0if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12) == 0)			//读PB12输入寄存器的状态,如果为0,则代表按键1按下{delay_ms(20);											//延时消抖while (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12) == 0);	//等待按键松手delay_ms(20);											//延时消抖KeyNum = 1;												//置键码为1}if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13) == 0)			//读PB13输入寄存器的状态,如果为0,则代表按键2按下{delay_ms(20);											//延时消抖while (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13) == 0);	//等待按键松手delay_ms(20);											//延时消抖KeyNum = 2;												//置键码为2}return KeyNum;			//返回键码值,如果没有按键按下,所有if都不成立,则键码为默认值0
}

GPIO_ReadInputDataBit()读GPIO输入数据寄存器的某一位。这里面有个延时消抖的代码延时20ms,while (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12) == 0);最后键值作为uint8类型的变量值返回。

(3)主函数调用Key_Init和Key_GetNum函数

#include "stm32f10x.h"                  // Device header
#include "delay.h"  
#include "LED.h" 
#include "sys.h" 
#include "KEY.h" int main(void)
{uint8_t KeyNum;Key_Init();	LED_Init(); //调用初始化LED函数,引用"led.h"后可使用delay_init(); //调用初始化延迟函数,引用"delay.h"后可使用while(1){KeyNum = Key_GetNum();if(KeyNum==1){PAout(0)=0;PAout(1)=1;}if(KeyNum==2){PAout(0)=1;PAout(1)=0;}}
}

PAout(0)=0是sys.c/h里面定义的宏,就是将PA0的输出电平控制为1或0,当然还有PBin(12)宏。可以将程序改写为

int main(void)
{
    Key_Init();    
    LED_Init(); //调用初始化LED函数,引用"led.h"后可使用
    delay_init(); //调用初始化延迟函数,引用"delay.h"后可使用
  while(1)
    {
            if(PBin(12)==0)
            {
                PAout(0)=0;
                PAout(1)=1;
            }
            if(PBin(13)==0)
            {
                PAout(0)=1;
                PAout(1)=0;
            }
    }
}

http://www.yayakq.cn/news/679199/

相关文章:

  • 外贸汽车网站建立网站服务器怎么弄
  • 佛山营销网站建设服务公司山东省建设备案在哪个网站
  • 注册网站做网销苏州找工作网站有哪些
  • 海口网站排名提升做字体特效的网站
  • 集团网站建设特点互联网课堂wordpress安卓下载
  • 全国工程建设系统网站wordpress qq挂件
  • 垂直网站怎么做seo技术培训泰州
  • 中淼建设工程有限公司网站张家港高端网站建设公司
  • 无锡网站建设公司地址gzip网站优化
  • h5手机网站开发国外音乐网站设计
  • 网站怎么做才能将名声打响免费的电脑优化软件
  • 注册公司如何做网站网站建设商务代表故事
  • 怎么在百度建设网站wordpress常见的15个问题
  • 域名注册网站制作营销策划公司名字
  • 找外包做网站要多久自己制作手机app软件
  • 网站 谁建设 谁负责郑州网站建设修改
  • 代做硬件毕业设计网站山东济南市网站建设
  • 北京城乡建设学校网站wordpress自适应框架
  • 在哪些网站能接到活做做的最好的手机网站
  • 关于网站建设的折页广告注册门户网站
  • 平台式网站模板下载地址新校区建设网站管理规定
  • 怎么做网站流量赚钱吗温州网站建设价格
  • 东营网站设计制作zac博客seo
  • asp与sql网站建设wordpress搭建个人博客linux
  • 江门网站优化快速排名互联网传媒 网站
  • 易县网站建设电子商务网站开发实训总结
  • 做网站和做网页有什么区别网站开发seo要求
  • 商城开发网站wordpress 4.9.6
  • 北京哪些做网站的公司好望京做网站
  • 成都网站建设网络公司学校网站建设的风险分析