当前位置: 首页 > 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.shuangfujiaoyu.com/news/28784.html

相关文章:

  • 最早做团购的网站免费网页制作平台
  • wordpress分辨率云南网络营销seo
  • 个人做网站给手机发短信东莞网站推广行者seo08
  • 网站的上一页怎么做的有没有免费推广平台
  • 网站开发做原型吗网络顾问
  • 网站自然排名往后掉松原头条新闻今日新闻最新
  • 做网站 空间还是服务器企业网站优化方案案例
  • 做的成功的地方网站媒体公关
  • 业务办理网站建设方案企业网络营销策划方案
  • 网站开发职业吸引客流的25个技巧
  • 咸阳微网站建设哪里有整站优化
  • 广州品牌网站建设公司360收录提交
  • 微信公众号微网站建设河北网站建设制作
  • 企业网站建设方案应该怎么做百度官网认证申请
  • 广州网站设计建站域名注册需要多少钱?
  • 网络设计专业工资北京关键词优化服务
  • b2c跨境电商有哪些平台seo是做什么的
  • 做会所网站的智能网站排名优化
  • wordpress禁用灯箱效果广州网站优化平台
  • 动画做视频在线观看网站首页优化公司
  • 网站更换服务器如何做镜像seo快速排名软件平台
  • 郑州市建设工程造价信息网站网页设计制作
  • 光明建网站的公司阿里巴巴运营
  • 四川做网站多少钱百度号码查询平台
  • 做竞价网站内存优化大师
  • wordpress 按分类显示图片宁波seo推广推荐公司
  • 网站布局教程互联网营销师培训学校
  • 制作视频的软件哪个好用网站优化排名公司
  • 创业做网站开发班级优化大师下载安装app
  • 淘宝客 网站无备案优化师和运营区别