STM32F4 NANO + RT-Thread Studio 测试工程搭建流程
硬件: 正点原子 NANO开发板
MCU: STM32F411RCT6
开发平台:RT-Thread-Studio
1 新建工程
新建RTT工程,选择以下配置,使用位置自行选择 注意不要中文和空格目录:
-
基于芯片
-
系列:stm32F4
-
子系列: F411
-
芯片:F411RC
-
控制台串口:UART1
-
发送脚 :PA9 接收脚:PA10
-
调试器:ST-Link
-
接口:SWD
建好工程点击界面小锤子编译通过,打开串口工具,配置波特率115200,点击下载按钮下载到开发板。打印出"Hello RT-Thread!"
\ | / - RT - Thread Operating System / | \ 4.0.3 build Oct 14 2021 2006 - 2020 Copyright by rt-thread team [D/main] Hello RT-Thread! msh >[D/main] Hello RT-Thread! [D/main] Hello RT-Thread! [D/main] Hello RT-Thread! msh >[D/main] Hello RT-Thread! [D/main] Hello RT-Thread! [D/main] Hello RT-Thread!按
TAB键,显示出msh常用命令。RT-Thread shell commands: clear - clear the terminal screen version - show RT-Thread version information list_thread - list thread list_sem - list semaphore in system list_event - list event in system list_mutex - list mutex in system list_mailbox - list mail box in system list_msgqueue - list message queue in system list_mempool - list memory pool in system list_timer - list timer in system list_device - list device in system help - RT-Thread shell help. ps - List threads in the system. free - Show the memory usage in the system. reboot - Reboot System在配置工程里的
Download的选择卡中,复位模式选择System Reset,从而保证每次下载完成后能够自动重启。
2.测试按键 和 LED 和 beep
硬件:
-
LED: PC0-PC7
-
key: PC8 PC9 PD2
-
Beep: PB8
功能:
- 实现8个灯 3个键 1个蜂鸣器鸣叫
方法:
-
使用 RTT方便的软件包
双击
CubeMX Settings, 注意 cubemx 版本 6.2.1配置好 LED key beep的管脚,USART1 RCC时钟为100M,保存后生成代码,后关闭, 提示,点击确定。
2.1 使用 agile_led 控制LED灯
-
代码简洁易懂,充分使用RT-Thread提供的API
-
详细注释
-
线程安全
-
断言保护
-
API操作简单
配置选项中
enable example
2.2 使用 agile_button 控制KEY
agile_button是基于RT-Thread实现的button软件包,提供button操作的API。
- 代码简洁易懂,充分使用RT-Thread提供的API
- 详细注释
- 线程安全
- 断言保护
- API操作简单
配置选项中 enable example
2.3 使用 beep控制蜂鸣器
基于 rt-thread 的 pin 和 pwm 驱动的蜂鸣器控制软件包,可以容易地驱动有源蜂鸣器或无源蜂鸣器,产生各种间隔长短的鸣叫声。
对于使用无源蜂鸣器,还支持PM(电源管理)组件,能设置使得MCU运行频率发生变化时,有正确的发声频率;也可以设置在发声期间,阻止MCU进入STOP模式,维持正常的发声。
配置选项中 Beep the buzzer on console to test
编译提示错误:
../packages/agile_led-latest/examples/example_agile_led.c:2:22: fatal error: drv_gpio.h: No such file or directory
将 #include <drv_gpio.h>修改成#include <drv_common.h>
配置好example中的led 引脚:
#define LED0_PIN GET_PIN(C, 0)
#define LED1_PIN GET_PIN(C, 1)
#define LED2_PIN GET_PIN(C, 2)
配置好example中的key 引脚:
#define WK_UP_KEY_PIN GET_PIN(A, 0)
#define KEY0_PIN GET_PIN(C, 8)
#define KEY1_PIN GET_PIN(C, 9)
#define KEY2_PIN GET_PIN(D, 2)
测试led:
msh >led_create
msh >led_start 0
msh >led_start 1
msh >led_start 2
测试key,分别 按下 0 1 2 wkup则在msh中显示:
msh >key_create
msh >[button click event] pin:40 repeat:1, hold_time:170
[button click event] pin:40 repeat:1, hold_time:200
[button click event] pin:41 repeat:1, hold_time:165
[button click event] pin:50 repeat:1, hold_time:230
[button click event] pin:0 repeat:1, hold_time:180
测试beep, 在main.c中添加:
#include <drv_common.h>
#define BEEP GET_PIN(B, 8) //24
...
beep_init(BEEP, 1);
在msh中运行, 则beep (B8对应num是24)以1000ms周期 50% 占空比 1000 频率鸣叫3声:
msh >beep on
Please input: beep <nums> <period> [prcent] [freq]
msh >beep 3 1000 50 1000
3. 测试PWM 连接无源蜂鸣器
硬件:TIM2 CH2
3.1 使用自带的例程
添加组件驱动 PWM
stm32f4xx_hal_conf.h中, 添加:#define HAL_PWM_MODULE_ENABLED
board.h中添加#define BSP_USING_PWM2
pwm_config.h添加:

3688

被折叠的 条评论
为什么被折叠?



