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

wordpress 角色宁波seo网络推广推荐公众号

wordpress 角色,宁波seo网络推广推荐公众号,云南网站的设计公司简介,西安公司注册费用理论说明 输入 上拉输入#xff1a;拉高电平 下拉输入#xff1a;拉低电平 浮空输入#xff1a;不拉高也不拉低电平 输出 开漏输出#xff1a;不能输出高电平#xff08;P-MOS不可用#xff0c;则只能低电平#xff09; 推挽输出#xff1a;可输出高低电平 输出速率… 理论说明 输入 上拉输入拉高电平 下拉输入拉低电平 浮空输入不拉高也不拉低电平 输出 开漏输出不能输出高电平P-MOS不可用则只能低电平 推挽输出可输出高低电平 输出速率 Low2MHzMedium10MHzHigh50MHz 代码编写 几个功能例程的配置及代码 Cube IDE代码 LED灯闪烁 配置引脚功能 在main.c文件大概94行开始 /* USER CODE BEGIN WHILE */ while (1) {//参数1GPIO口名字(PB)参数2GPIO数字(PB5中的5)参数3高低电平(0,1)HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, 0);HAL_Delay(1000);HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, 1);//HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin); //电平反转,无需设置高低电平HAL_Delay(1000);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */ }/* USER CODE END 3 */实验二 按键PE3控制蜂鸣器开关、按键PE4控制 LED2(PE5) 亮灭、光敏传感器控制 LED1(PB5) 亮灭 按键设置成上拉输入PE4则为高电平当按键按下时PE4为0则按键按下(其它按钮同理) LED灯、蜂鸣器(PB8)输出高低电平设置推挽输出 光敏传感器(PB11)高低电平由外界光照强度来决定设置浮空输入 按键配置 LED灯配置方面已经说明直接配置 蜂鸣器配置(PB8) 光敏传感器配置(PB11) 光敏传感器AO DO有什么区别 AO输出模拟信号 DO输出数字信号高低电平 在main.c文件大概94行开始 /* USER CODE BEGIN WHILE */ while (1) {if(0 HAL_GPIO_ReadPin(Key1_GPIO_Port, Key1_Pin)) //检测读取按键高低电平{HAL_Delay(120);if(0 HAL_GPIO_ReadPin(Key1_GPIO_Port, Key1_Pin)) //检测读取按键高低电平{HAL_GPIO_TogglePin(BEEP_GPIO_Port, BEEP_Pin); //电平反转,无需设置高低电平}}if(0 HAL_GPIO_ReadPin(Key2_GPIO_Port, Key2_Pin)) //检测读取按键输入高低电平{HAL_Delay(120);if(0 HAL_GPIO_ReadPin(Key2_GPIO_Port, Key2_Pin)) //检测读取按键高低电平{HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin); //电平反转,无需设置高低电平}}if(0 HAL_GPIO_ReadPin(SUN_GPIO_Port, SUN_Pin)) //检测读取光敏传感器输入高低电平{HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, 1);}else{HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, 0);}/* USER CODE END WHILE *//* USER CODE BEGIN 3 */ }效果展示 代码过程 初始化时钟 初始化时钟 APB2ENR外设时钟使能寄存器 大概功能将APB2ENR(外设时钟使能寄存器)初始化IO端口B时钟开启 //初始化代码在gpio.c中48行 __HAL_RCC_GPIOE_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE();//__HAL_RCC_GPIOB_CLK_ENABLE(); 如下过程 #define __HAL_RCC_GPIOB_CLK_ENABLE() do { \__IO uint32_t tmpreg; /*定义一个变量*/\SET_BIT(RCC-APB2ENR, RCC_APB2ENR_IOPBEN);\/* Delay after an RCC peripheral clock enabling(下方两个延时作用) */\tmpreg READ_BIT(RCC-APB2ENR, RCC_APB2ENR_IOPBEN);\UNUSED(tmpreg); \} while(0U)//SET_BIT(RCC-APB2ENR, RCC_APB2ENR_IOPBEN); 的解释//1.RCC_APB2ENR_IOPBEN #define RCC_APB2ENR_IOPBEN_Pos (3U) #define RCC_APB2ENR_IOPBEN_Msk (0x1UL RCC_APB2ENR_IOPBEN_Pos) /*RCC_APB2ENR_IOPBEN_Msk 等于0x1 3 结果0x00000008 */ //0x1 0000 0001 3 0000 1000(对应上图,位3为1) 0x00000008 #define RCC_APB2ENR_IOPBEN RCC_APB2ENR_IOPBEN_Msk /* RCC_APB2ENR_IOPBEN 等于0x00000008 *///2.RCC寄存器RCC_BASE强转成这个RCC_TypeDef类型的结构体 #define RCC ((RCC_TypeDef *)RCC_BASE) //RCC_BASE 由总线矩阵偏移到AHB系统总线再偏移到复位和时钟控制(RCC)(可看参考手册的系统结构)(下面三行从下往上看) #define RCC_BASE (AHBPERIPH_BASE 0x00001000UL) #define AHBPERIPH_BASE (PERIPH_BASE 0x00020000UL) #define PERIPH_BASE 0x40000000UL //RCC_TypeDef结构体 typedef struct {__IO uint32_t CR;__IO uint32_t CFGR;__IO uint32_t CIR;__IO uint32_t APB2RSTR;__IO uint32_t APB1RSTR;__IO uint32_t AHBENR;__IO uint32_t APB2ENR;__IO uint32_t APB1ENR;__IO uint32_t BDCR;__IO uint32_t CSR; } RCC_TypeDef;//3.RCC-APB2ENR RCC指向APB2ENR则就是结构体内的__IO uint32_t APB2ENR;//将APB2ENR的位3置1初始化引脚 GPIOx_BSRR端口位设置/清除寄存器 低16位中若有某一位 置1则这个引脚为1(高电平)若都为0则不影响 高16位中若有某一位 置1则这个引脚位0(低电平)若都为0则不影响 //gpio.c中第53行 /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET);void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) {/* Check the parameters */assert_param(IS_GPIO_PIN(GPIO_Pin));assert_param(IS_GPIO_PIN_ACTION(PinState));if (PinState ! GPIO_PIN_RESET) //GPIO_PIN_RESET为0{GPIOx-BSRR GPIO_Pin; //给BSRR寄存器 低16位赋值 置1}else{GPIOx-BSRR (uint32_t)GPIO_Pin 16u; //给BSRR寄存器 高16位赋值 置0} }//GPIO_TypeDef *GPIOx 等于 LED2_GPIO_Port #define LED2_GPIO_Port GPIOE #define GPIOE ((GPIO_TypeDef *)GPIOE_BASE) //GPIO_TypeDef 强转 typedef struct {__IO uint32_t CRL;__IO uint32_t CRH;__IO uint32_t IDR;__IO uint32_t ODR;__IO uint32_t BSRR;__IO uint32_t BRR;__IO uint32_t LCKR; } GPIO_TypeDef; #define GPIOE_BASE (APB2PERIPH_BASE 0x00001800UL) #define APB2PERIPH_BASE (PERIPH_BASE 0x00010000UL) #define PERIPH_BASE 0x40000000UL//GPIO_Pin 等于 LED2_Pin #define LED2_Pin GPIO_PIN_5 #define GPIO_PIN_5 ((uint16_t)0x0020) /* Pin 5 selected */ 写实际需求输入read 判断输出write 0/1 Keil代码 修改的地方如下 main.c //main函数中 while (1) {if(0 HAL_GPIO_ReadPin(Key1_GPIO_Port, Key1_Pin)) //检测读取按键高低电平{HAL_Delay(120);if(0 HAL_GPIO_ReadPin(Key1_GPIO_Port, Key1_Pin)) //检测读取按键高低电平{HAL_GPIO_TogglePin(BEEP_GPIO_Port, BEEP_Pin); //电平反转,无需设置高低电平}}if(0 HAL_GPIO_ReadPin(Key2_GPIO_Port, Key2_Pin)) //检测读取按键输入高低电平{HAL_Delay(120);if(0 HAL_GPIO_ReadPin(Key2_GPIO_Port, Key2_Pin)) //检测读取按键高低电平{HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin); //电平反转,无需设置高低电平}}if(0 HAL_GPIO_ReadPin(SUN_GPIO_Port, SUN_Pin)) //检测读取光敏传感器输入高低电平{HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, 1);}else{HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, 0);} }gpio.c void MDK_GPIO_Init(void) {GPIO_InitTypeDef GPIO_InitStruct {0};/* GPIO Ports Clock Enable */__HAL_RCC_GPIOE_CLK_ENABLE();__HAL_RCC_GPIOB_CLK_ENABLE();__HAL_RCC_GPIOA_CLK_ENABLE();/*Configure GPIO pin Output Level */HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET);/*Configure GPIO pin Output Level */HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);/*Configure GPIO pin Output Level */HAL_GPIO_WritePin(BEEP_GPIO_Port, BEEP_Pin, GPIO_PIN_RESET);/*Configure GPIO pins : PEPin PEPin */GPIO_InitStruct.Pin Key1_Pin|Key2_Pin;GPIO_InitStruct.Mode GPIO_MODE_INPUT;GPIO_InitStruct.Pull GPIO_PULLUP;HAL_GPIO_Init(GPIOE, GPIO_InitStruct);/*Configure GPIO pin : PtPin */GPIO_InitStruct.Pin LED2_Pin;GPIO_InitStruct.Mode GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull GPIO_NOPULL;GPIO_InitStruct.Speed GPIO_SPEED_FREQ_LOW;HAL_GPIO_Init(LED2_GPIO_Port, GPIO_InitStruct);/*Configure GPIO pin : PtPin */GPIO_InitStruct.Pin SUN_Pin;GPIO_InitStruct.Mode GPIO_MODE_INPUT;GPIO_InitStruct.Pull GPIO_NOPULL;HAL_GPIO_Init(SUN_GPIO_Port, GPIO_InitStruct);/*Configure GPIO pin : PtPin */GPIO_InitStruct.Pin LED1_Pin;GPIO_InitStruct.Mode GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull GPIO_NOPULL;GPIO_InitStruct.Speed GPIO_SPEED_FREQ_LOW;HAL_GPIO_Init(LED1_GPIO_Port, GPIO_InitStruct);/*Configure GPIO pin : PtPin */GPIO_InitStruct.Pin BEEP_Pin;GPIO_InitStruct.Mode GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull GPIO_PULLUP;GPIO_InitStruct.Speed GPIO_SPEED_FREQ_LOW;HAL_GPIO_Init(BEEP_GPIO_Port, GPIO_InitStruct); }main.h //60行开始 #define Key1_Pin GPIO_PIN_3 #define Key1_GPIO_Port GPIOE #define Key2_Pin GPIO_PIN_4 #define Key2_GPIO_Port GPIOE #define LED2_Pin GPIO_PIN_5 #define LED2_GPIO_Port GPIOE #define SUN_Pin GPIO_PIN_11 #define SUN_GPIO_Port GPIOB #define LED1_Pin GPIO_PIN_5 #define LED1_GPIO_Port GPIOB #define BEEP_Pin GPIO_PIN_8 #define BEEP_GPIO_Port GPIOB若烧录完成后需要按复位按键才可正常可尝试以下设置 第一步 第二步
http://www.hkea.cn/news/14452889/

相关文章:

  • 用flash做网站教程做网站拿来卖
  • 怎么做素材设计网站成都做小程序的公司排名
  • 网站后台用esayui做新华网
  • 郑州网站建设哪家公司便宜网页无法打开如何解决
  • 工作室 网站 备案无锡做网站seo
  • 做百度手机网站优化点珠海微信公众号制作
  • 做网站租用那个服务器好网页制作公司地址
  • 手机网站地址做网站个网站要多少钱
  • 做公司的网站的需求有哪些内容西安SEO网站建设
  • 大型门户网站开发教程网站设计研究方法
  • 杭州 专业网站建设 网络服务北京公司注册核名网站
  • 自己做的网站链接到微信支付界面erp系统哪个品牌最好
  • 网站建设标书模板下载网站开发能自学吗
  • 贵州建设职业技术学院招商网站wordpress去category
  • 易语言编程软件做网站科技特长生包括哪些项目
  • 免费网站建设价格费用登录app
  • 企业建设网站注意点永泰县住房和城乡建设局网站
  • 李青青做网站 公司主要做应用领域可做分析图的地图网站
  • 厚街响应式网站设计网页设计比较优秀的网站
  • 微网站O2O平台平台开发自助网站模板平台
  • 购物网站建设报价基于h5的网站开发
  • 网站建设作业云南网络公司网站建设
  • 创一个网站怎样赚钱网站模板能自己做吗
  • 如何在vps上搭建网站如何将图片生成链接
  • seo网站推广简历网站html5自适应
  • 建设网站需要哪些流程iis7 伪静态 wordpress
  • 皮卡剧网站怎样做东莞寮步
  • 专业的设计网站有哪些内容网站建设广告有哪些平台
  • 中国交通建设监理协会网站制作图片的软件免费
  • 义乌高端网站设计品牌有设计师做的装修效果图的网站