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

自己做网站如何挣钱wordpress 性能分析

自己做网站如何挣钱,wordpress 性能分析,做网站的市场细分,wordpress主题安装全解析目录 一、 硬件板及设计目的 二、建立工程 1.配置GPIO 2.配置时钟源和Debug 3.配置系统时钟 4.配置NVIC 三、代码编写 四、修改HAL_GPIO_EXTI_IRQHandler() 一、 硬件板及设计目的 本文使用的硬件板是ST的开发板NUCLEO-G474RE#xff0c;板上MCU型号为ST…目录 一、 硬件板及设计目的   二、建立工程 1.配置GPIO 2.配置时钟源和Debug      3.配置系统时钟    4.配置NVIC 三、代码编写 四、修改HAL_GPIO_EXTI_IRQHandler()  一、 硬件板及设计目的   本文使用的硬件板是ST的开发板NUCLEO-G474RE板上MCU型号为STM32G474RET6。并按照资源提示设计制造了扩展IO板有需要此扩展板的留言联系我。 本例设计目的及其功能和操作流程如下。         按下KeyLeft键时使LED1的输出翻转。按下KeyRight键时使LED2的输出翻转。按下KeyUp键时使LED1和LED2的输出都翻转。KeyDown键按下时产生EXTI0软中断模拟KeyUp键按下。 用户标签 引脚名称 引脚功能 GPIO模式 默认电平 上拉或下拉 LED1 PB11 GPIO_Output 推挽输出 High 上拉 LED2 PB12 GPIO_Output 推挽输出 High 上拉 KeyRight K1 PA0 EXTI0 输入 上拉 KeyDown K2 PA1 EXTI1 输入 上拉 KeyLeft K3 PA6 EXTI[9:5] 输入 上拉 KeyUp K5 PA7 EXTI[9:5] 输入 上拉 二、建立工程 1.配置GPIO 配置PB11、PB12GPIO OUTPUT默认High LevelPPPullUpHigh Speed标识为LED1LED2;配置PA0EXTI0PP标识为KeyRight配置PA1EXTI1PP标识为KeyDown配置PA6EXTI[9:5]PP标识为KeyLeft配置PA7EXTI[9:5]PP标识为KeyUp 2.配置时钟源和Debug      打开System Core中的RCC高速时钟(HSE)选择Crystal/ eramic Resonator使用片外时钟晶体作为HSE的时钟源。在SYS中将Debug设置Serial Wire。 3.配置系统时钟    将系统时钟(SYSCLK)频率配置为170 MHz。 4.配置NVIC 配置Time base的抢占式优先级为0配置EXTI0、EXTI1的抢占式优先级为1配置EXTI[9:5]的抢占式优先级为2这样处理后当优先级1的中断执行期间触发优先级为2的中断时不会及时响应直到优先级为1的中断执行完毕才去执行优先级为2的中断。 三、代码编写 为实现设计目的只需要在main.c的程序里添加外部中断的回调函数就可以。 /* USER CODE BEGIN 4 */ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){if (GPIO_Pin KeyUp_Pin) //PA7KeyUp, 使两个LED输出翻转{HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);HAL_Delay(500); //软件消除按键抖动的影响}else if(GPIO_Pin KeyRight_Pin) //PA0KeyRight, 使LED2 输出翻转{HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);HAL_Delay(500); //软件消除按键抖动的影响,观察优先级的作用}else if (GPIO_Pin KeyDown_Pin) //PA1KeyDown产生EXTI0 软中断{__HAL_GPIO_EXTI_GENERATE_SWIT(GPIO_PIN_0); //产生EXTI0 软中断HAL_Delay(500); //这个延时也是必要的否则由于按键抖动会两次触发}else if (GPIO_Pin KeyLeft_Pin) //PA6KeyLeft, 使LED1输出翻转{HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);HAL_Delay(1000); //软件消除按键抖动的影响,观察优先级的作用}}/* USER CODE END 4 */ 四、修改HAL_GPIO_EXTI_IRQHandler()  完成回调函数的代码后下载到开发板上进行测试时按键按下后的响应并不如预期预期的现象是每按下一个按键翻转对应的LED再次按下按键再翻转。例如按下 Keyup键后两个LED会出现无规律的现象亮灭两次、或不亮、或亮了后又熄灭这不是按键抖动影响的。这是由ISR中调用的外部中断通用处理函数HAL_GPIO_EXTI_IRQHandler()的代码引起的这个函数的代码如下 /*** brief Handle EXTI interrupt request.* param GPIO_Pin Specifies the port pin connected to corresponding EXTI line.* retval None*/ void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) {/* EXTI line interrupt detected */if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) ! 0x00u){__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);HAL_GPIO_EXTI_Callback(GPIO_Pin);} } 这个函数在检测到中断挂起标志后先清除中断挂起标志然后再执行回调函数。一般的中断通用处理函数都是这样的处理流程是为了硬件能及时响应下一次中断。但是对于检测按键输入的外部中断这是有问题的因为清除中断挂起标志后按键的抖动就会触发下一次中断并将中断挂起标志置位。虽然在回调函数里使用了延时但是回调函数退出后NVIC检测到中断挂起标志被置位就会再执行一次回调函数。 所以对于外部中断方式的按键输入检测需要修改一下HAL_GPIO_EXTI_IRQHandler() 的代码将清除中断挂起标志位的功能放在后面即修改为如下的代码这样修改后的程序运行就实现了设计想要达到的目的了。 /*** brief Handle EXTI interrupt request.* param GPIO_Pin Specifies the port pin connected to corresponding EXTI line.* retval None*/ void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) {/* EXTI line interrupt detected */if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) ! 0x00u){HAL_GPIO_EXTI_Callback(GPIO_Pin);__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);} } 需要注意的是函数HAL_GPIO_EXTI_IRQHandler()是文件stm32g4xx_hal_gpio.c中的这是HAL驱动的原始文件这个函数里并没有代码沙箱也不是弱函数不可以重写。修改这个函数的代码后在CubeMX 重新生成代码时这个函数的代码又会变成原来的样子。所以一定要记得再次改回去。
http://www.hkea.cn/news/14536638/

相关文章:

  • 做网站分辨率一般多少网站建设投标方案
  • iis如何发布php网站网站如何加入广告联盟
  • 丽水品牌网站设计长沙住房和建设局网站
  • 2019广东省工程建设网站wordpress 临时域名
  • 营销型企业网站群策略单位做核酸简讯
  • 网站建设与制作考试题学校网站免费html模板
  • c语言做网站吗世界上有php应用的网站
  • 哪建设网站好手表交易网站
  • 免费.网站最新域名红旗渠建设集团网站
  • 网站开发的流程和步骤是什么vps建设网站
  • 官方网站下载打印机的驱动wordpress.3.5
  • 手机网站判断跳转网站建设套用模板类的要多少钱
  • 网站开发制作培训学校土巴兔装修平台怎么收费
  • 天津高端网站设计公司成都有没有做网站建设的
  • 数据分析师岗位要求seo岗位培训
  • 做电视网站需要多大的服务器优化型网站是模板
  • 高端网站制作网站建设建站平台软件
  • 做的网站百度推广平台登录网址
  • 招聘网站官网马鞍山网站建设 明达
  • 视频分享网站建设难吗管理软件是什么
  • 做30个精品网站自适应手机模板
  • 南京营销型网站建设婚姻网站建设注意事项
  • 怎么在百度上面做网站网站建设工程设计图
  • 网站建设前景东莞关键词搜索排名
  • 南昌旅游网站建设方案wordpress优惠券模板
  • 万户做网站好不好企业网企业网站制作
  • 河南省通信管理局网站备案电话木马设计公司官网
  • 做数据统计的网站机票售票网站开发
  • 深圳企业专业网站建设广州做网站哪家好
  • 做网站的专业公司易企秀h5