百问网7天物联网smarthome学习笔记2之cubemx创建工程

1、创建符合自己风格的工程

  • 需要准备以下文件:
    • 处理器的启动文件:startup_stm32xxx.s,这个文件在Driver\STM32xxx_HAL_Driver\Inc\stm32f1xx_hal_conf_template.h
    • 处理器的库文件:STM32XXX_HAL_Driver
    • CMSIS标准接口文件有:startup_stm32xxx.s system_stm32xxx.c system_stm32xxx.h
    • 处理器的中断文件:stm32xxx_it.c/h,在Projects下任意一个例程中找到,最好找名称为Templates的工程中,因为这里的中断服务函数是内核所必须的,是比较“干净”的文件。
    • 处理器的配置文件:STM32xxx_hal_conf.h,这个文件在Driver\STM32xxx_HAL_Driver\Inc\stm32f1xx_hal_conf_template.h

2、裸机模式软件框架

在这里插入图片描述

3、RTOS模式软件框架

比裸机模式软件框架只多了一个中间件层
在这里插入图片描述

4、CubeMX创建工程:

步骤1、SYS中Debug选serial wire,这样就可以调试了

步骤2、时钟配置

步骤3、配置好使用的外设,各个管脚的初始化电平要配置正确。

步骤4、从Middleware处添加freertos

STM32CubeMX生成的代码中TAB为2个空格大小,用户程序单独建文件写,自动生成的 main.c 中只添加两行跳转代码就好了,不混在一起就没必要改它的风格,就算改了下次重新生成又会变回原来的样子。

5、FreeRTOS任务通知

设置宏configUSE_TASK_NOTIFICATIONS为1(或不定义宏configUSE_TASK_NOTIFICATIONS)将会开启任务通知功能,有关的API函数也会被编译。设置宏configUSE_TASK_NOTIFICATIONS为0则关闭任务通知功能,相关API函数也不会被编译。默认这个功能是开启的。开启后,每个任务多增加8字节RAM。

这是个很有用的特性,一大亮点。

每个RTOS任务具有一个32位的通知值,RTOS任务通知相当于直接向任务发送一个事件,接收到通知的任务可以解除任务的阻塞状态(因等待任务通知而进入阻塞状态)。相对于以前必须分别创建队列、二进制信号量、计数信号量或事件组的情况,使用任务通知显然更灵活。更好的是,相比于使用信号量解除任务阻塞,使用任务通知可以快45%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值