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

重庆快速网站推广荣成市信用建设网站

重庆快速网站推广,荣成市信用建设网站,马鞍山网站建设报价,医院门户网站模板使用STM32CubeIDE生成。 1,使能FreeRTOS 2,选择版本 CMSIS_V1 3 设置参数USE_NEWLIB_REENTRANT 如果不设置,会在生成代码的时候提示错误 4,设置时钟TIM1作为系统时钟 ​​​​​​​​​​​​​​ 5,设置Task …

使用STM32CubeIDE生成。

  • 1,使能FreeRTOS

  • 2,选择版本 CMSIS_V1

  • 3 设置参数USE_NEWLIB_REENTRANT

    如果不设置,会在生成代码的时候提示错误

            

  • 4,设置时钟TIM1作为系统时钟

​​​​​​​​​​​​​​

  • 5,设置Task

点击Add按钮会出现对话框,设置好后就会有一个任务可以使用,默认的任务可以改设置。这里兴建了两个任务

led_wok_task:系统启动后LED会点亮,如果接收到消息会闪烁

led_fault_task:系统启动后LED会熄灭,如果接收到消息会闪烁

注意到生成的代码main.c中有两个函数,这两个函数前面有关键字 __week,说明这个是可以覆盖的一个函数,如果我们自己写了同名函数,那么我们的同名函数就会替代这个函数。

  • 6,设置LL库

  • 新建usr_led.c

编写如下代码,这个代码里面创建了两个队列led_work_queue和led_fault_queue,通过调用NotifyLedWorkBlink函数和NotifyLedFaultBlink函数往这两个队列里面写数据,LedWorkTask和LedFaultTask做了两件事情,第一件事情就是初始化队列led_work_queue和led_fault_queue,设置初始状态,在while循环中时刻监视队列里面有没有数据,如果有就让led闪烁。

#include "main.h"
#include "cmsis_os.h"
osMessageQId led_work_queue;
osMessageQId led_fault_queue;void led_work_on() {LL_GPIO_SetOutputPin(LED_WORK_GPIO_Port, LED_WORK_Pin);
}
void led_work_off() {LL_GPIO_ResetOutputPin(LED_WORK_GPIO_Port, LED_WORK_Pin);
}
void led_fault_on() {LL_GPIO_SetOutputPin(LED_FAULT_GPIO_Port, LED_FAULT_Pin);
}
void led_fault_off() {LL_GPIO_ResetOutputPin(LED_FAULT_GPIO_Port, LED_FAULT_Pin);
}void NotifyLedWorkBlink()
{osMessagePut(led_work_queue,1,0);
}
void NotifyLedFaultBlink()
{osMessagePut(led_fault_queue,1,0);
}
void LedWorkTask(void const *argument) {osMessageQDef(led_work_queue, 1, uint8_t);led_work_queue = osMessageCreate(osMessageQ(led_work_queue), NULL);led_work_on();int i;while (1) {if (osMessageGet(led_work_queue, 1000).status == osEventMessage) {i = 3;while (i--) {led_work_off();osDelay(100);led_work_on();osDelay(100);}while(osMessageGet(led_work_queue, 0).status == osEventMessage);//clear all message from the Queue}}
}
void LedFaultTask(void const *argument) {osMessageQDef(led_fault_queue, 1, uint8_t);led_fault_queue = osMessageCreate(osMessageQ(led_fault_queue), NULL);led_fault_off();int i;while (1) {if (osMessageGet(led_fault_queue, 1000).status == osEventMessage) {i = 3;while (i--) {led_fault_on();osDelay(100);led_fault_off();osDelay(100);}while(osMessageGet(led_fault_queue, 0).status == osEventMessage);}}
}

http://www.15wanjia.com/news/195499.html

相关文章:

  • 张家界旅游网站官网跨境电商平台有哪些推广方式
  • 网页设计模板的网站有哪些网站是可以接单做任务的
  • 网站建设 没市场了吧北京华夏工程建设监理公司网站
  • 北京建站软件销售网站建设实验报告
  • 网站怎么设计百度下载官方下载安装
  • 网站怎么建设高端公司建建设网站
  • 陕西公路工程建设有限公司网站网站建设公司排行榜
  • 百度做网站效果怎么样重庆网站建设建站收费
  • 推荐一个免费的网站深圳网页设计公司推荐
  • 自己建设网站流程自助建设外贸网站
  • 免费开源建站系统源码徐州百度搜索网站排名
  • python做网站快么随州网站优化
  • 网站悬浮qq宁波网站推广优化公司
  • 做网站例子微信视频号怎么推广引流
  • 网站建设制作创建域名的步骤
  • 网站推广方案案例网站改域名备案吗
  • 中建建筑网站我要下载中国建设网站
  • 徐州市网站旅游手机网站开发
  • 建站全过程万州做网站多少钱
  • 网站开发项目实战视频做的公司网站怎么没了
  • 怎样打死网站怎么制作自己的网页网站首页
  • 省级精品课程网站wordpress支持的语言包
  • 网站怎样做优化调整南昌快速排名优化
  • python做网站表白做网站怎么放视频
  • 惠州网站建设 翻译优质做网站价格
  • 台山网站设计wordpress 上传错误
  • 虚拟主机不能通过什么架设网站asp做网站很少
  • 有资源的公众号企业网站排名优化公司
  • 已经有域名,如何建设网站黑龙江建设网ca锁费用
  • 视频网站 php源码太原市建设局网站