笔者将从以下几个方面逐步深入地讲解STM32F103C8开发板的使用,并在Windows下编写一个简单的DHT11温湿度传感器:
- 元器件
- 电路连接
- 移植uc-os ii 到stm32
- 七段数码管
- DHT11温湿度传感器
- 最终效果
元器件
本实验需要的元器件有:
七段数码管
DHT11温湿度传感器
STM32F103C8开发板 1块
ST-LINK 1个
LED小灯 若干
330ohm电阻 若干
按钮 若干
子母线 若干
电路连接
正确的电路连接是成功的一半
由于接线较为复杂,将STM32板子直接插在了面包板上,更加稳定且不容易短路。
使用面包板时遇到了坑,最上面一排竟然不通,然后用小灯挨个测试才发现的。建议大家不要太相信面包板的质量。
移植uc-os ii 到stm32
由于要使用uc-os ii 进行编程所以我们首先要做的就是把uc-os ii 移植到stm32上。
具体方案我参照了http://blog.sina.com.cn/s/blog_5d431a4b0102v654.html
和ucosii在STM32上的移植详解
并做了一些自己的修改。
新建工程,选择正确的板子型号
包含文件
新建目录
- 在工程目录下和代码目录下添加APP UCOS BSP LIB CPU Output文件夹
- 工程上右键,Options,Output页签,Select Foldeer for Objects,进入Output目录,点击OK
- 把Micrium\Software\uCOS-II\Source目录中的文件拷贝到UCOS目录下,并添加到工程中
- 工程Options中,C/C++页签,Include Paths,点击后面省略号可选择include目录,添加UCOS路径
- 复制Micrium\Software\EvalBoards\ST\STM3210B-EVAL\RVMDK\OS-Probe目录下的文件app_cfg.h,os_cfg.h和includes.h到APP目录中,并在Include Paths中添加APP
- 复制Micrium\Software\uCOS-II\Ports\arm-cortex-m3\Generic\RealView目录下的所有文件到CPU目录,添加到工程和Include Path中
- 工程Options中,C/C++页签,Defines中添加 USE_STDPERIPH_DRIVER
- 把RTE和RTE\Device\STM32F103VE添加进Include Paths中
- 修改os_cfg.h文件,#define OS_APP_HOOKS_EN 1为0
- BSP目录下新建BSP.c文件,添加内容如下:
#include <bsp.h>
CPU_INT32U BSP_CPU_ClkFreq (void) {
RCC_ClocksTypeDef rcc_clocks;
RCC_GetClocksFreq(&rcc_clocks);
return ((CPU_INT32U)rcc_clocks.HCLK_Frequency);
}
INT32U OS_CPU_SysTickClkFreq (void) {
INT32U freq;
freq = BSP_CPU_ClkFreq();
return (freq);
}
- 复制Micrium\Software\EvalBoards\ST\STM3210B-EVAL\RVMDK\BSP目录下的bsp.h到 BSP目录中