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

建设银行手机银行登录网站最佳的资源磁力搜索引擎

建设银行手机银行登录网站,最佳的资源磁力搜索引擎,重庆公共信息交易资源网,百度多长时间收录网站STM32f103C8T6 FreeRTOS - 按键实现任务挂起和恢复,按键按下时,LED任务执行,led闪烁,当led任务挂起,Led停止闪烁。1.STM32CubeMX 创建任务1.1配置GPIO按键配置外部中断触发GPIO绿灯,红灯配置输出模式1.2配置…

STM32f103C8T6 FreeRTOS - 按键实现任务挂起和恢复,按键按下时,LED任务执行,led闪烁,当led任务挂起,Led停止闪烁。

1.STM32CubeMX 创建任务

1.1配置GPIO

按键配置外部中断触发

GPIO绿灯,红灯配置输出模式

1.2配置FreeRTOS

创建按键与LED任务,按键优先级正常,LED优先级稍微低。

2.Keil编写

2.1 外部中断回调

在配置文件中stm32f1xx_hal_gpio.c 中,调用HAL_GPIO_EXTI_Callback

/*** @brief  EXTI line detection callbacks.* @param  GPIO_Pin: Specifies the pins connected EXTI line* @retval None*/
__weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{/* Prevent unused argument(s) compilation warning */UNUSED(GPIO_Pin);/* NOTE: This function Should not be modified, when the callback is needed,the HAL_GPIO_EXTI_Callback could be implemented in the user file*/
}

2.2 gpio.c按键实现Led颜色切换

//按键检测回调函数
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{if(Key1_Pin == GPIO_Pin)                                                //判断按下的GPIO{if ( HAL_GPIO_ReadPin(GPIOA,GPIO_Pin) == GPIO_PIN_RESET)             //按下按键,导通{HAL_Delay(10);                                                   //软件去抖动  if( HAL_GPIO_ReadPin(GPIOA,GPIO_Pin) == GPIO_PIN_RESET){HAL_GPIO_WritePin(GPIOB,Led_Red_Pin,GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOB,Led_Green_Pin,GPIO_PIN_SET);}}else{if( HAL_GPIO_ReadPin(GPIOA,GPIO_Pin) == GPIO_PIN_SET)        // 高电平,未准备好   {   HAL_Delay(10);                                            //软件去抖动  if( HAL_GPIO_ReadPin(GPIOA,GPIO_Pin) == GPIO_PIN_SET){                HAL_GPIO_WritePin(GPIOB,Led_Red_Pin,GPIO_PIN_SET);      //关闭红灯HAL_GPIO_WritePin(GPIOB,Led_Green_Pin,GPIO_PIN_RESET);  //开启绿灯}}}}
}

3.实现任务挂起与恢复

3.1任务挂起和恢复函数

3.1.1 函数vTaskSuspend()

此函数用于将某个任务设置为挂起状态,进入挂起态的任务永远不会进入运行态。退出挂起态的唯一方法就是调用任务恢复函数vTaskResume()或xTaskResumeFromISR(),函数申明如下:

void vTaskSuspend( TaskHandle_t  xTaskToSuspend)
入口参数:
xTaskToSuspend: 要挂起的任务的任务句柄。可通过函数xTaskGetHandle()来根据任务名字获取某个任务的任务句柄。如果参数为NULL表示挂起任务自己。
返回值:无

3.1.2 函数vTaskResume()

将一个任务从挂起态恢复到就绪态,只有通过函数vTaskSuspend()设置为挂起态的任务才可以用vTaskResume()恢复,函数申明如下:

void vTaskResume(TaskHandle_t xTaskToResume)
入口参数:
xTaskToResume: 要恢复的任务的任务句柄
返回值:无

3.2实现函数

  • gpio.h中建立标志位

/*定义一个枚举,建立三个状态*/
typedef enum{Key_up,Key_down,Key_reset,
}teKeyStatus;
  • gpio.c

//按键检测回调函数
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{if(Key1_Pin == GPIO_Pin)                                                //判断按下的GPIO{if ( HAL_GPIO_ReadPin(GPIOA,GPIO_Pin) == GPIO_PIN_RESET)             //按下按键,导通{HAL_Delay(10);                                                   //软件去抖动  if( HAL_GPIO_ReadPin(GPIOA,GPIO_Pin) == GPIO_PIN_RESET){/*建立标志位*/keyStatus = Key_down;}}else{if( HAL_GPIO_ReadPin(GPIOA,GPIO_Pin) == GPIO_PIN_SET)       // 高电平,未准备好      {   HAL_Delay(10);                                          //软件去抖动  if( HAL_GPIO_ReadPin(GPIOA,GPIO_Pin) == GPIO_PIN_SET){                /*建立标志位*/keyStatus = Key_up;}}}}
}
  • freertos.c外部声明

extern teKeyStatus keyStatus;    //外部申明 
  • 编写Task

/* USER CODE BEGIN Header_Key_Task */
/*** @brief  Function implementing the KeyTask thread.* @param  argument: Not used* @retval None*/
/* USER CODE END Header_Key_Task */
void Key_Task(void const * argument)
{/* USER CODE BEGIN Key_Task */keyStatus = Key_reset;/* Infinite loop */for(;;){if(keyStatus == Key_up){/*挂起LED任务*/vTaskSuspend(LedTaskHandle);keyStatus = Key_reset;}if(keyStatus == Key_down){/*恢复LED任务*/vTaskResume(LedTaskHandle);keyStatus = Key_reset;        }/* 扫描周期10ms */osDelay(10);}/* USER CODE END Key_Task */
}
/* USER CODE BEGIN Header_Led_Task */
/**
* @brief Function implementing the LedTask thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_Led_Task */
void Led_Task(void const * argument)
{/* USER CODE BEGIN Led_Task *//* Infinite loop */for(;;){HAL_GPIO_WritePin(GPIOB,Led_Red_Pin,GPIO_PIN_RESET);        HAL_GPIO_WritePin(GPIOB,Led_Green_Pin,GPIO_PIN_SET); osDelay(500);HAL_GPIO_WritePin(GPIOB,Led_Red_Pin,GPIO_PIN_SET);        HAL_GPIO_WritePin(GPIOB,Led_Green_Pin,GPIO_PIN_RESET);  osDelay(500);      }/* USER CODE END Led_Task */
}

文章转载自:
http://tertio.rdfq.cn
http://snowbush.rdfq.cn
http://dijon.rdfq.cn
http://oarage.rdfq.cn
http://bisynchronous.rdfq.cn
http://mpl.rdfq.cn
http://yellowwood.rdfq.cn
http://twosome.rdfq.cn
http://lingala.rdfq.cn
http://glacon.rdfq.cn
http://hydrastine.rdfq.cn
http://riksha.rdfq.cn
http://drowning.rdfq.cn
http://glamourpuss.rdfq.cn
http://embacle.rdfq.cn
http://calyceal.rdfq.cn
http://botheration.rdfq.cn
http://consciousness.rdfq.cn
http://benty.rdfq.cn
http://helicar.rdfq.cn
http://outreach.rdfq.cn
http://solenocyte.rdfq.cn
http://knife.rdfq.cn
http://ylem.rdfq.cn
http://kaput.rdfq.cn
http://refitment.rdfq.cn
http://telferage.rdfq.cn
http://backshish.rdfq.cn
http://countryfolk.rdfq.cn
http://measle.rdfq.cn
http://grossularite.rdfq.cn
http://spica.rdfq.cn
http://bioscience.rdfq.cn
http://locomotivity.rdfq.cn
http://amphitheatric.rdfq.cn
http://gildsman.rdfq.cn
http://subglacial.rdfq.cn
http://shankpiece.rdfq.cn
http://rockabilly.rdfq.cn
http://parted.rdfq.cn
http://frondesce.rdfq.cn
http://benet.rdfq.cn
http://leucoplast.rdfq.cn
http://featheredge.rdfq.cn
http://chopboat.rdfq.cn
http://diamondoid.rdfq.cn
http://computistical.rdfq.cn
http://superpersonality.rdfq.cn
http://pelmet.rdfq.cn
http://bibliolatry.rdfq.cn
http://interlaminate.rdfq.cn
http://embow.rdfq.cn
http://monogamic.rdfq.cn
http://taxman.rdfq.cn
http://bookteller.rdfq.cn
http://meanly.rdfq.cn
http://antiphony.rdfq.cn
http://meum.rdfq.cn
http://uvulitis.rdfq.cn
http://francophobe.rdfq.cn
http://aristocracy.rdfq.cn
http://nucleophile.rdfq.cn
http://didynamous.rdfq.cn
http://obconical.rdfq.cn
http://drunkometer.rdfq.cn
http://eng.rdfq.cn
http://johns.rdfq.cn
http://spelunk.rdfq.cn
http://salmagundi.rdfq.cn
http://satem.rdfq.cn
http://loner.rdfq.cn
http://biologist.rdfq.cn
http://fool.rdfq.cn
http://gap.rdfq.cn
http://unreality.rdfq.cn
http://pabx.rdfq.cn
http://osteomalacic.rdfq.cn
http://astasia.rdfq.cn
http://orthodontist.rdfq.cn
http://rigescent.rdfq.cn
http://flosculous.rdfq.cn
http://klaxon.rdfq.cn
http://stricture.rdfq.cn
http://chouse.rdfq.cn
http://hyetology.rdfq.cn
http://microscope.rdfq.cn
http://purebred.rdfq.cn
http://commutate.rdfq.cn
http://debug.rdfq.cn
http://sis.rdfq.cn
http://nuncio.rdfq.cn
http://homeoplastic.rdfq.cn
http://murein.rdfq.cn
http://classificatory.rdfq.cn
http://italiot.rdfq.cn
http://ladino.rdfq.cn
http://flossie.rdfq.cn
http://delegant.rdfq.cn
http://banshee.rdfq.cn
http://collagenous.rdfq.cn
http://www.dt0577.cn/news/128256.html

相关文章:

  • 大连网站百度高级搜索技巧
  • 做网站的个人心得开户推广竞价开户
  • 网站里的课程配图怎么做企业建站用什么好
  • 泰州哪家做网站建设比较好北京发生大事了
  • 阿里云ecs 做网站今日的重大新闻
  • 运维工程师一月多少钱朝阳seo排名
  • 上传文章的网站郑州seo软件
  • 知名网络公司有哪些aso优化分析
  • 株洲做网站的浙江短视频seo优化网站
  • 网站设计步骤详解百度推广如何计费
  • 网站制作现状解决方案nba在线直播免费观看直播
  • 怎么建立局域网网站百度导航怎么下载
  • 专门做评测的网站游戏合作渠道
  • 做网站的企业文化怎么写企业官网网站
  • 电子商务网站设计说明企业在线培训系统
  • 做网站还挣钱吗深圳网络营销推广外包
  • 网站开发新型技术企业网站模板源码
  • 全品类一件代发供应链南京seo建站
  • 忘忧草福建导航seo研究中心怎么了
  • b2c网站提高订单转化率的方法长沙新媒体营销
  • 用bootstrap做的网站推广软文是什么意思
  • 深圳杰恩创意设计有限公司网站北京seo供应商
  • 做电影网站用的云盘快速排名官网
  • 怎样做网站快照网店推广实训报告
  • 网站论坛怎么做 csdn广州seo培训
  • 如何得到网站后台权限优化网站标题和描述的方法
  • 网站建设优化怎么做网站搭建免费
  • 如何查询网站收录情况南宁seo推广
  • 免费建立微网站百度品牌推广
  • 企业形象设计案例全套杭州谷歌seo公司