当前位置: 首页 > 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://www.yayakq.cn/news/374894/

相关文章:

  • 制作会员手机网站苏州保洁公司有多少家
  • 湘潭整站优化个性化网站模板
  • 网站制作公司属于广告发布者吗华为荣耀官网入口
  • 网站建设企业模板下载WordPress考勤模板
  • 淘宝做代销在哪个网站上进货比较好一级造价师准考证打印时间
  • 做教育集团的网站win7 iis配置网站 视频教程
  • 衡水seo网站建设优化排名做街舞网站的素材
  • 行情软件app网站大全下载太原网站建设培训学校
  • 达州科创网站建设公司精美网站界面
  • 网站备案ip更换做网页第一步
  • 做网站哪里需要用钱产品营销策略怎么写
  • 企业网站 案例教育网站开发价钱
  • 十大图片素材网站暖暖韩国中文免费观看播放
  • 仿网站上的焦点图天津网站优化首页
  • 琼海市建设局网站仿百度百家模板wordpress主题
  • 做旅游网站挣钱吗世界互联网峰会互联网之光
  • 中山网站seo关键词2017网站开发兼职
  • 建站教程的实现方式建网站一年要多少钱
  • 自贡做响应式网站开发公司手机创建网站免费注册
  • 网站建设服装市场分析报告wordpress 生成html
  • o2o网站设计公司西安 网站开发 招聘
  • 深圳的设计网站公司中国现在哪里建设最多
  • 长沙建设网站的公司寻找做网站的公司
  • 怎么用云服务器做网站个人博客网站开发的意义
  • pc网站制作是指什么意思云主机如何做两个网站
  • 网站建设 上海网站建seo网站推广电话
  • 广州网站建设一般多少钱wordpress 产品相册插件
  • 郑州官网网站优化公司东莞网络优化推广
  • 做网站 怎么推广重庆营销策划公司排名
  • 网站做支付gensler