FreeRTOS入门——基于FreeRTOS的多任务程序与AHT20数据采集原理电路

FreeRTOS入门——基于FreeRTOS的多任务程序与AHT20数据采集原理电路

一、AHT20数据采集原理电路绘制

在stm32最小系统电路原理中添加 AHT20数据采集原理电路
在这里插入图片描述

引脚图
在这里插入图片描述

  1. 绘制元器件
    创建一个原理图库
    点击图片中箭头所指的选项,可以添加一个原理图库到所选的工程中去
    在这里插入图片描述
    创建新器件
    点击图片上箭头指向的按钮均可添加器件
    在这里插入图片描述
    绘制元器件
    放置器件底板
    在屏幕白板上点击”右键“,选中”放置“中的”矩形“,即可放置一个底板
    在这里插入图片描述
    放置引脚
    点击图上工具栏中的管脚工具或点击右键选中“放置”里面的管脚选项即可放置引脚
    在这里插入图片描述
    使用Symbol Wizard辅助绘制元器件
    在这里插入图片描述
  2. 添加原理图库
    在参照上一个步骤绘制好所有需要的元器件后,我们就可以开始将我们的原理图库添加进库里备用
    点击“库”窗口中的“Libraries”,在弹出的窗口中点击“安装”,选择“从文件中安装”
    在这里插入图片描述
  3. 绘制采集电路
    应用电路如下
    在这里插入图片描述
    在库中选中需要的元器件,双击并将它放置在原理图上
    在这里插入图片描述
    最后电路如下
    在这里插入图片描述

二、FreeRTOS的多任务程序设计

创建多任务程序
在main.c编写程序,实现执行三个周期性任务的功能
具体程序如下:

/* FreeRTOS头文件 */
#include "FreeRTOS.h"
#include "task.h"
/*stm32头文件 */
#include "bsp_led.h"
#include "bsp_usart.h"
#include "stm32f10x.h"


void Task1_led()//任务一
{
	while(1)
	{
		LED1_ON;
		vTaskDelay(500);	 //延时500ms
		LED1_OFF;
		vTaskDelay(500);	//延时500ms
	}
}

void Task2_uart()//任务二
{
	while(1)
	{
		Usart_SendString( DEBUG_USARTx,"HelloWorld\n");
		vTaskDelay(2000);	//延时2000ms
	}
}
void Task3_AHT()//任务三
{
//没有硬件,无法实现
}

 int main(void)
 {	
	 
	 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//中断优先级设置为组4
	  
	 LED_GPIO_Config();		  	//LED初始化
	 USART_Config();            //串口初始化
	 xTaskCreate(Task1_led,"TASK1_led",40,NULL,1,NULL);
	 xTaskCreate(Task2_uart,"TASK2_uart",40,NULL,2,NULL);
	 xTaskCreate(Task3_AHT,"TASK3_AHT",40,NULL,3,NULL);
	 vTaskStartScheduler();//启动任务调度器,系统运行
	 
  while(1){}
 }

最终结果
在这里插入图片描述

三、参考资料

实战篇 | 基于freeRTOS的多任务事件传输demo(附代码)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值