STM32F4 NANO + RT-Thread Studio 测试工程搭建流程

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

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灯

  1. 代码简洁易懂,充分使用RT-Thread提供的API

  2. 详细注释

  3. 线程安全

  4. 断言保护

  5. API操作简单

    配置选项中 enable example

2.2 使用 agile_button 控制KEY

agile_button是基于RT-Thread实现的button软件包,提供button操作的API。

  1. 代码简洁易懂,充分使用RT-Thread提供的API
  2. 详细注释
  3. 线程安全
  4. 断言保护
  5. 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添加:

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

RT-Thread诞生于2006年,是一款以开源、中立、社区化发展起来的物联网操作系统。 RT-Thread主要采用 C 语言编写,浅显易懂,且具有方便移植的特性(可快速移植到多种主流 MCU 及模组芯片上)。RT-Thread把面向对象的设计方法应用到实时系统设计中,使得代码风格优雅、架构清晰、系统模块化并且可裁剪性非常好。 RT-Thread有完整版和Nano版,对于资源受限的微控制器(MCU)系统,可通过简单易用的工具,裁剪出仅需要 3KB Flash、1.2KB RAM 内存资源的 NANO 内核版本;而相对资源丰富的物联网设备,可使用RT-Thread完整版,通过在线的软件包管理工具,配合系统配置工具实现直观快速的模块化裁剪,并且可以无缝地导入丰富的软件功能包,实现类似 Android 的图形界面及触摸滑动效果、智能语音交互效果等复杂功能。 RT-Thread架构 RT-Thread是一个集实时操作系统(RTOS)内核、中间件组件的物联网操作系统,架构如下: 内核层:RT-Thread内核,是 RT-Thread的核心部分,包括了内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件 / 板级支持包)与硬件密切相关,由外设驱动和 CPU 移植构成。 组件与服务层:组件是基于 RT-Thread内核之上的上层软件,例如虚拟文件系统、FinSH命令行界面、网络框架、设备框架等。采用模块化设计,做到组件内部高内聚,组件之间低耦合。 RT-Thread软件包:运行于 RT-Thread物联网操作系统平台上,面向不同应用领域的通用软件组件,由描述信息、源代码或库文件组成。RT-Thread提供了开放的软件包平台,这里存放了官方提供或开发者提供的软件包,该平台为开发者提供了众多可重用软件包的选择,这也是 RT-Thread生态的重要组成部分。软件包生态对于一个操作系统的选择至关重要,因为这些软件包具有很强的可重用性,模块化程度很高,极大的方便应用开发者在最短时间内,打造出自己想要的系统。RT-Thread已经支持的软件包数量已经达到 180+RT-Thread的特点: 资源占用极低,超低功耗设计,最小内核(Nano版本)仅需1.2KB RAM,3KB Flash。 组件丰富,繁荣发展的软件包生态 。 简单易用 ,优雅的代码风格,易于阅读、掌握。 高度可伸缩,优质的可伸缩的软件架构,松耦合,模块化,易于裁剪和扩展。 强大,支持高性能应用。 跨平台、芯片支持广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南工孙冬梅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值