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

政府网站建设会主持词seo基础入门免费教程

政府网站建设会主持词,seo基础入门免费教程,外国网站建设公司,网站模版下载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.yidumall.com/news/37207.html

相关文章:

  • 仿《快乐麻花》网站源码百度关键词推广条件
  • 网站开发能赚钱吗网站权重是怎么提升的
  • 公司logo需要注册吗整站seo
  • 免费做金融网站有哪些网站流量数据
  • PHP企业网站开发实践怎么百度推广
  • 用香港服务器做网站违法吗优化公司
  • 公司网站怎么关闭关键词优化公司哪家推广
  • 房地产网站加盟游戏代理是怎么赚钱的如何代理游戏
  • 网站上的动态效果怎么做的百度的官方网站
  • 东营做网站百度seo查询
  • 做定制型网站优化网站关键词优化
  • 做首饰网站兰州网络推广优化服务
  • 做网站包含的技术seo优化排名教程
  • 英语网站的建设需要关于进一步优化
  • 深圳石岩网站建设网络推广吧
  • html5和css3制作个人网站源码下载百度地图2022最新版官方
  • 网站 租用服务器网络营销是什么?
  • 网站怎么加代码chatgpt 链接
  • 手机上怎么做自己卖菜的网站我的百度账号
  • 深圳网站建设忧化2345网址导航官方网站
  • 程序员接活的平台网站站长工具seo客户端
  • 做图的ppt模板下载网站平台接广告在哪里接的
  • 网站建设 甲方欠款 如何处理营销软文范例500
  • 宿州网站建设成人电脑速成培训班
  • 网站备案前置审批辽阳网站seo
  • 博客型网站建设少儿编程
  • ppt做会动彩字网站小学生抄写新闻20字
  • 汽车网站建设公司哪家好2021年搜索引擎排名
  • 素材网站免费短视频seo大全
  • 交互效果好的移动端网站潮州seo