本帖最后由 maverics 于 2015-12-30 08:16 编辑
【STM32F469I试用】+FreeRTOS+BinarySemaphore控制LED闪烁 首先非常感谢21ic提供这么好的机会,自己也比较幸运。申请开发板的初衷是将开发板结合自己开发的多传感器集成项目,考察32F469的性能以及屏幕显示的优势,奈何试用时间有限,开发来不及,只得把该项工作放到后面去做,容**后来和各位分享,考虑到STM32CubeMX在配置方面的优势,以及FreeRTOS,那么目前就以此二者来进行简单的测试。 1. 测试目的: 测试STM32CubeMX配置流程 FreeRTOS BinarySemaphore运行流程测试 2. 软件:
STM32CubeMX V4.12.0 ;
STM32CubeF4 Firmware Package V1.10.0
MDK 5.16A 3. 测试流程: STM32CubeMX配置工程,在STM32F469IDISCOVERY上运行FreeRtos实时系统,并创建5个任务:Task1每250ms写入一次信号量;task2等待信号量,蓝灯闪烁一次;task 3、4、5 红、黄、绿灯每500ms闪烁一次。 4. 硬件原理图
5. STM32CubeMX配置流程 5.1 STM32CubeMX创建工程 5.2 配置管脚
配置PD4、PD5、PG6、PK3为GPIO_Output。 5.3 勾选左侧FreeRTOS 5.4 配置时钟180MHz 5.5 配置LED管脚推挽输出、上拉、高速 5.6任务界面添加任务 5.7 添加信号量 5.8 配置完成后,生成mdk工程。
5.9 工程中自动创建的代码
5.10 Task & Semaphore 5.11 绿灯和黄灯任务 5.12 红灯和蓝灯任务 5.13切换控制任务(负责产生信号量)
5.14 编译、运行、下载。 6 实际运行情况 四灯闪烁,但蓝灯闪烁频率是其他三灯的二倍。 分析:切换任务每250ms发送一次信号量,使得蓝灯每250ms闪烁一次;其他三色灯的任务每500ms闪烁一次,因此出现上述结果。
测试完毕。
|