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

山西省建设监理协会网站做网商必备网站

山西省建设监理协会网站,做网商必备网站,上海企业网络维护,东莞网站设计的公司目录 一、时钟使能的含义 1.为什么要时钟使能#xff1f; 2.什么是时钟使能#xff1f; 3.GPIO的使能信号#xff1f; 二、代码封装 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_SpeedGPIO_High_Speed; //gpio的反应速率不太影响led_gpio.GPIO_PuPdGPIO_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 key00;//时钟使能--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_SpeedGPIO_High_Speed; //gpio的反应速率不太影响key_gpio.GPIO_PuPdGPIO_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(key01){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_ModeGPIO_Mode_OUT;gpio_init.GPIO_OTypeGPIO_OType_OD;gpio_init.GPIO_PinGPIO_Pin_9|GPIO_Pin_10;gpio_init.GPIO_PuPdGPIO_PuPd_NOPULL;gpio_init.GPIO_SpeedGPIO_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_ModeGPIO_Mode_IN;gpio_key.GPIO_OTypeGPIO_OType_OD;gpio_key.GPIO_PinGPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;gpio_key.GPIO_PuPdGPIO_PuPd_UP;gpio_key.GPIO_SpeedGPIO_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.hint main() {Led_Init();Key_Init();uint8_t key0;while(1){key GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4);//默认高电平按下接地if(key01){GPIO_WriteBit(GPIOF, GPIO_Pin_10,1); //led高电平灯灭} else{GPIO_WriteBit(GPIOF, GPIO_Pin_10,0); //led低电平灯亮} } } 至此main.c代码变简洁了不少而且代码更加易读代码层次也更清晰。
http://www.dnsts.com.cn/news/168345.html

相关文章:

  • 制作公司网站有哪些好处北京专业做网站的公司
  • 高明网站设计报价成都网站制作公司dedecms
  • 邢台做网站公司crm永久免费
  • 广告网站开发网站建设零基础教学
  • 网站建设域名和空间企业管理培训班
  • 网站开发 思维导图上海行业门户网站建设技术
  • 怎么做分享连接的网站深圳建英文网站
  • 手机做wifi中继上外国网站备案的域名可以做盗版电影网站吗
  • 住房城乡建设干部学院网站wordpress 标签输出页
  • 做网站是干什么的网页界面设计需要首先做市场研究
  • 简述网站开发流程 旅游软件外包服务内容
  • 新网站建设验收免费低代码管理系统开发
  • 投资担保网站建设建材营销型的网站
  • 网站编辑面试自己怎么做外贸英文网站
  • 企业网站建设湖南岚鸿从零开始学习网络营销
  • 大型网站的优化方法网站开发工作容易出现的失误
  • 网站数据库模板营销网站的建造步骤
  • 石家庄网站建设接单网站 建设 培训 视频
  • 顺德技术支持 骏域网站建设专家景点网站建设方案
  • 莆田外贸自建网站安卓系统应用开发
  • wap网络百度优化关键词
  • 建设网站个人简介范文wordpress编辑权限
  • 怎样建外贸网站设计软件图标
  • aspx网站架设企业所得税税率5% 10% 25%
  • wordpress怎么用模版百度关键词优化师
  • 网站子目录科技英语
  • 广州域名企业网站建站哪家好中国建筑资讯网
  • 网站开发公司内部数据字典东莞网上注册公司
  • 市场营销手段13种手段优化搜索点击次数的方法
  • pc网站做移动端适配邢台网站建设最新报价