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

网站建设中 切片指什么wordpress替换本地字体

网站建设中 切片指什么,wordpress替换本地字体,天津seo培训,影响网站排名原因目录 一、时钟使能的含义 1.为什么要时钟使能? 2.什么是时钟使能? 3.GPIO的使能信号? 二、代码封装 1.封装前完整代码 2.封装结构 封装后代码 led.c led.h key.c key.h main.c 一、时钟使能的含义 1.为什么要时钟使能&#xff1f…

目录

一、时钟使能的含义

1.为什么要时钟使能?

2.什么是时钟使能?

3.GPIO的使能信号?

 二、代码封装

1.封装前完整代码

2.封装结构

封装后代码

led.c

 led.h

key.c

key.h

main.c


一、时钟使能的含义

1.为什么要时钟使能?

每一个stm32单片机里都有着各种硬件设备,每一个设备对于频率的要求是不同的,有些设备要求频率低,有些设备要求频率高。如果为所有硬件设备设置同一频率,这就会出现性能不足或者资源浪费的情况,所以引入“时钟”这一概念,实现频率分配,即“分频”,“倍频”。需要低频和高频的设备使用相应的时钟使能函数(已经固定,需要查表或者查图获得),可以使用自己所需要的频率,实现资源的合理分配。

2.什么是时钟使能?

时钟是分频,使能是信号,是动作。所有时钟默认是disable,需要用哪个频率,调用相应的信号,设为enable。

时钟使能是用分频得到的信号作为模块的使能信号,模块原有的时钟不变。即用分频信号去控制模块的使能端口。

3.GPIO的使能信号?

GPIO模块的使能信号是AHB1

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);

通过一系列的分频和倍频使得每一个模块有比较适配的频率,利用率高。分倍频原理如下:

 二、代码封装

在前面的开关控制灯的亮灭代码实现时, 有开关的五大参数设置和灯的五大参数设置等数十行代码在函数实现的前面,影响程序的可读性,所以要进行代码的封装,增强简洁性。

1.封装前完整代码

#include "stm32f4xx.h"                  // Device headerint main()
{//时钟使能--LEDRCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);//GPIO时钟控制  //参数配置//让程序决定第几组第几根引脚,如何工作GPIO_InitTypeDef led_gpio;led_gpio.GPIO_Mode = GPIO_Mode_OUT;    //引脚以输出方式工作led_gpio.GPIO_OType = GPIO_OType_PP;	 //推挽led_gpio.GPIO_Pin =  GPIO_Pin_9| GPIO_Pin_10 |GPIO_Pin_8;led_gpio.GPIO_Speed=GPIO_High_Speed;      //gpio的反应速率,不太影响led_gpio.GPIO_PuPd=GPIO_PuPd_DOWN;          //上拉  GPIO_PuPd_DOWN 下拉//GPIO_PuPd_NOPULLGPIO_Init(GPIOF,&led_gpio);GPIO_SetBits(GPIOF, GPIO_Pin_9);GPIO_SetBits(GPIOF, GPIO_Pin_10);uint16_t key0=0;//时钟使能--KEY开关RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);//GPIO时钟控制  //参数配置//让程序决定第几组第几根引脚,如何工作GPIO_InitTypeDef key_gpio;key_gpio.GPIO_Mode = GPIO_Mode_IN;        //引脚以输入方式工作key_gpio.GPIO_OType = GPIO_OType_PP;	    //推挽key_gpio.GPIO_Pin =  GPIO_Pin_4| GPIO_Pin_3 |GPIO_Pin_2;//第几根引脚key_gpio.GPIO_Speed=GPIO_High_Speed;      //gpio的反应速率,不太影响key_gpio.GPIO_PuPd=GPIO_PuPd_UP;          //上拉  GPIO_PuPd_DOWN 下拉//GPIO_PuPd_NOPULLGPIO_Init(GPIOE,&key_gpio);               //初始化while(1){//uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin);key0= GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4);//默认高电平,按下,接地if(key0==1){GPIO_WriteBit(GPIOF, GPIO_Pin_10,1);//led高电平,灯灭}else{GPIO_WriteBit(GPIOF, GPIO_Pin_10,0);	//led高电平,灯亮}	}
}

2.封装结构

封装后代码

led.c
#include "stm32f4xx.h"                  // Device headervoid Led_Init()
{RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);GPIO_InitTypeDef gpio_init;gpio_init.GPIO_Mode=GPIO_Mode_OUT;gpio_init.GPIO_OType=GPIO_OType_OD;gpio_init.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_10;gpio_init.GPIO_PuPd=GPIO_PuPd_NOPULL;gpio_init.GPIO_Speed=GPIO_High_Speed;GPIO_Init(GPIOF,&gpio_init);
}
 led.h
void Led_Init(void);//声明
key.c
#include "stm32f4xx.h"                  // Device headervoid Key_Init()
{RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);GPIO_InitTypeDef gpio_key;gpio_key.GPIO_Mode=GPIO_Mode_IN;gpio_key.GPIO_OType=GPIO_OType_OD;gpio_key.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;gpio_key.GPIO_PuPd=GPIO_PuPd_UP;gpio_key.GPIO_Speed=GPIO_High_Speed;GPIO_Init(GPIOE,&gpio_key);
}
key.h
void Key_Init(void);
main.c
#include "stm32f4xx.h"                  // Device header
#include "led.h"
#include "key.h"int main()
{Led_Init();Key_Init();uint8_t key=0;while(1){key= GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4);//默认高电平,按下,接地if(key0==1){GPIO_WriteBit(GPIOF, GPIO_Pin_10,1);    //led高电平,灯灭}  else{GPIO_WriteBit(GPIOF, GPIO_Pin_10,0);	//led低电平,灯亮}	}
}

至此,main.c代码变简洁了不少,而且代码更加易读,代码层次也更清晰。

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

相关文章:

  • 郑州企业网站优化多少钱百度快速收录权限域名
  • 网站改版 seo普陀建设网站
  • 豆芽网站建设douyanet网络营销学什么内容
  • 网站建设相关法律法规北京多用户商城网站建设
  • 做seo网站公司哪家好如何做网站alexa排名
  • 展示型网站 营销型网站php网站做代理服务器
  • 哪个网站是动态官方网站怎么注册
  • 新中建设公司招聘网站网上做设计的网站
  • 做网站名词网站数据分析表格
  • 电子商务网站推广的主要方法wordpress如何发邮件
  • 网站设计素材图片wordpress微信文章采集
  • 联系我们网站模板网站域名怎么设置方法
  • 网站留言板html模板构建网站的主要步骤
  • 网站制作北京做知乎网站要多少钱
  • phpcms做网站好吗什么网站做h5不收费
  • 中国建设协会网站wordpress的手机客户端
  • 网站开发中网页之间的链接形式茂名市网站建设
  • 建设ca网站小程序商店模板
  • 做兼职的网站打字员微信公众号推广的好处
  • 学做电商的网站有哪些wordpress如何给主题加密
  • 微网站的价格做彩票网站推广犯法吗
  • wordpress建立网站实例购物app哪个好
  • 网站最下面版权模板网站301跳转怎么做
  • 苏州专业做网站公司哪家好软件设计培训
  • 东台建设局官方网站湖州房产网
  • 温州网站设计哪家公司好北京晨钟科技有限公司订单查询
  • 推广网站联盟深圳专业做网站哪家专业
  • 做公司网站需不需要注册有哪些做微信小游戏的网站
  • 哈尔滨企业建站网站开发网站模板 实验室
  • 传媒公司名字大全免费宁波网站扔优化