【RT-Thread】RT-Thread改变打印串口(在BSP的基础上添加其他功能)

前言

使用的芯片:STM32F407ZG,正点原子探索者板

官网对于环境的配置和BSP的制作都有详细介绍,当然本人在学习的过程中,也做了一个简单的笔记:如何看RT-Thread文档、RT的工程建立和BSP快速构建_追逐者-桥的博客-CSDN博客

且自己参照其BSP制作过程建立的可以在自己板子上进行LED灯闪烁。

但是如果想要使用其他功能,则需要再添加BSP新的功能,开启底层驱动,且添加RT中menucongfig选择功能。 

原先RT-Thread是默认USART1打印信息,这里实现打开USART2并通过串口2进行信息的打印。

一、RT-Thread的BSP制作

        这里对步骤做做一个简单的描述:

1、复制通用模板

 2、使用CubeMX工具配置工程

STM32CubeMX的工程建立_追逐者-桥的博客-CSDN博客

注意,在使用RT时明确说了不要生成相应的.c/.h文件

3、board文件夹中的文件修改(board.c/h、Kconfig)、查看

4、ENV工具menuconfigpackage

5、ENV工具scons

scons --target=...、scons、scons --dist:生成工程、编译、复制工程

二、增加BSP的功能

        一开始的模板只开启了一个串口和两个GPIO,但是现实中不可能只用到这两个功能,如何添加BSP功能就成了一个很现实的问题。

RT的BSP可以分为三部分(针对STM32来说的,自己见解):RT-Thread 简介

  1. CubeMX构建BSP的底层驱动部分
  2. RT拿底层驱动构成了组件和服务层,提供了函数的API,并引入了实时操作内核
  3. 开发者使用RT的API开发应用层,并形成自己的应用包(App)  

2.1、CubeMX添加BSP的底层驱动

        为了方便学习,这里先添加类似的功能:USART1/2、UART4,后期会逐步更新其他BSP功能的构建。

 

这里串口通常使用异步的两线制通信,生成文件后可以打开stm32f1xx_hal_msp.c文件查看驱动。

上图是UART4添加完成,这样BSP底层驱动就已经配置完成,大家也可以先试试其他功能,也可以查看本专栏的其他博客学习。

2.2、RT中添加BSP功能

2.2.1、添加Kcongfig文件

Kconfig (rt-thread.org):Kcongfig的RT工作机制

config语句:config 定义了一组新的配置选项

menu/endmenu语句:用于生成菜单

if/endif语句:是一个条件判断

choice/endchoice语句:将多个类似的配置选项组合在一起,供用户选择一组配置项

comment语句:出现在界面的第一行,用于定义一些提示信息

source语句:用于读取另一个文件中的 Kconfig 文件

  • 添加串口2后的Kconfig文件(在board文件夹中)

2.2.2、ENV中menuconfig菜单选择相应的功能

  •  使用menuconfig界面,进行串口2的选择

2.2.3、查看与配置rtconfig.h 

  • 选择好的功能退出后自动更新rtconfig.h中相应的宏

  •  在rtconfig.h 中改变串口打印方式为串口2

 2.2.4、更改主函数

 2.2.5、硬件链接串口2并打开调试助手

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
作者:annysky 概述智能家居是目前最火热的应用方向,基于对物联网和智能家居的热衷和喜爱,以自己小屋为实际应用模板,将智能家居的设想变为现实状态。本智能家居应用平台基于STM32H7和STM32F4为主芯片进行设计,分为主控平台和网关平台。主控平台以ART-PI开发板为核心,主要任务是查询网关平台的数据信息、查询和设置参数、与云平台进行交互等;网关平台以STM32F407为核心,主要任务是采集数据和分析处理数据、并将主控平台下发的指令进行分析处理后来控制终端,该平台目前采集4路温湿度、1路电量、1路甲醛、1路PM2.5、2路烟雾报警、1路水浸报警、2路门锁状态的数据,输出控制1路加热和散热,通过CAN通讯与主控平台进行联络,并且使用屏进行显示各个状态,还可以使用WLAN与Onenet进行数据交互。后续根据需要在CAN网络上增加设备或模块(智能窗帘、CAN温湿度传感器、智能继电器、门禁系统、摄像头等),能够监测和控制终端产品。 开发环境硬件: (1)主控:ART-PI(STM32H750XB),ART-PI-DOCK扩展板(含屏) (2)网关:WT-19S42(STM32F407VGT6) (3)RT-Thread版本:RT-Thread V 4.0.3 (4)开发工具及版本:MDK 5.27,CANTest,XCOM V2.0,VGUS2020,DGUS_V759-t5l RT-Thread使用情况概述(1)内核部分:调度器,信号量,消息队列,libcpu/BSP。 调度器:创建多个线程来实现不同的工作。 信号量:用来同步线程。 消息队列:用来实现线程之间传递的数据。 libcpu/BSP:外设CAN驱动、UART驱动。 (2)组件部分:CAN框架,UART框架, CAN框架:使用FDCAN2框架来与网关平台进行数据交互,上层代码可以提高代码的可重用性。 UART框:使用UART框架来与ART-PI-DOCK扩展板进行数据交互。 (3)软件包部分: cJSON:C语言实现的极简的解析 JSON 格式的软件包。 WebNet软件包:由RT-Thread 自主研发的,基于 HTTP 协议的 Web 服务器实现,它不仅提供设备与 HTTP Client 通讯的基本功能,而且支持多种模块功能扩展,且资源占用少、可裁剪性强,充分满足开发者对嵌入式设备服务器的功能需求。 Onenet: RT-Thread 针对 OneNET 平台连接做的的适配,通过这个软件包,可以让设备在 RT-Thread 上非常方便的连接 OneNet 平台,完成数据的发送、接收、设备的注册和控制等功能。 硬件框架总方案原理图 智能家居应用平台方案原理图如图1所示,主要由两部分组成(目前状态,后续根据实际应用情况进行扩展),分别是主控平台和网关平台。 图1总方案原理图 主控平台: 主控平台的硬件分为两部分。一是ART-PI开发板,是由RT-Thread 设计的开源硬件,核心芯片是STM32H750XB,主频最高达480M,支持超低功耗。开发板板载功能众多,标配 TYPE-C 接,板载 WIFI, 蓝牙配网,还有 LCD(RGB888),SDRAM, TF-Card, USB-OTG等应有尽有。 另外一部分是ART-PI-DOCK扩展板:根据ART-PI开发板的扩展接自主设计的ART-PI-DOCK扩展板。主要的功能是通讯和人机交互,不参与对外设传感器或者模块的控制和信号采集(除光敏和温湿度)。板子主要包含以下几种功能: (1)2路CAN通讯 (2)1路485通讯; (3)1路232通讯; (4)1路TTL通讯; (5)1路WLAN网络通讯; (6)CAN匹配电阻设置; (7)主机ID设置; (8)1路温湿度传感器; (9)1路光敏传感器; (10)1路锂电池充电管理模块接; (11)1路外设5V输入接; (12)1路串口屏接; (13)1路TFT液晶屏接。 扩展板涵盖的功能非常全面,包含了目前应该最广泛的几种通讯方式和人机交互方式(可选),可适应不同应用场景。 图2 ART-PI-DOCK原理框图 网关平台 网关核心芯片是STM32F407VGT6,1024k Flash,192KB SRAM,工作频率为168 MHz。基于STM32F407强大的功能,在设计网关平台时,使用了符合IEEE 1588 v2标准要求的以太网MAC10/100,并使用了高达6个USART设备。另外使用了1路CAN,4路串行设备,12路开关量输入,8路开关量输出,各个接均进行了标识。 图3网关平台原理框图 软件框架说明图4 主控平台软件流程图 图5 网关平台软件流程图 本项目采用的是主控与网关两个平台,主控平台完成对网关平台数据的处理显示,并对网关平台的参数
概述 随着科技的发展,数字仪表的应用越来越广泛,逐渐替代传统型机械仪表。本应用就是基于ART-Pi开发板,使用RT-Thread系统设计开发的,面向工程机械行业的数字仪表。本应用通过CAN总线采集发动机和控制器参数,将发动机转速、冷却液温度、燃油液位等参数直观的显示出来。 开发环境硬件:ART-Pi+自制扩展板+自制屏幕 RT-Thread版本:4.0.3 开发工具及版本:RT-Thread Studio 1.1.5 RT-Thread使用情况概述程序基于ART-Pi开发板模板工程创建,BSP版本为1.0.1,RT-Thread版本为4.0.3。 程序中使用的组件包括UART设备驱动、CAN设备驱动、I2C设备驱动、PIN设备驱动、ADC设备驱动等,使用touchgfx库和gt9147软件包,其中对touchgfx库文件和gt9147软件包根据硬件资源进行适当修改。硬件方面使用了GPIO、UART、I2C、SDRAM、LCD、FDCAN、ADC等。 硬件框架 硬件结构框图如上图所示,核心板为ART-Pi开发板,板载SPI flash,SDRAM和RGB888接。RGB888接与LCD显示屏连接,用于显示数据;LED指示系统运行状态,系统运行后,LED以2Hz频率闪烁;CAN模块通过扩展板与ART-Pi连接,使用TJA1050 CAN收发器,与其它CAN设备进行数据交互;ART-Pi接收CAN模块数据,并传输给LCD,同时根据当前档位,发送转速控制数据,控制发动机转速。(程序中所有CAN数据帧均为模拟ID,与实际ID不同) 软件框架说明系统读取ADC数值,根据ADC数值发送转速控制数据,外部CAN设备接收到转速控制数据后,控制发动机转速,并将转速发出,系统接收外部CAN设备发送转速、水温、油位等数据,与ADC档位一起传输到LCD数据传输模块,LCD数据传输模块将档位、转速、水温、油位数据传输到LCD显示模块,将数据显示到屏幕上。 软件模块说明ADC模块:adc_thread_entry为ADC模块采集进程,间隔100ms采集电位计AD值。 CAN处理模块:CAN处理模块分为接收模块和发送模块。can_rx_thread为CAN接收进程,接收发动机转速、燃油液位和水温数据。can_tx_thread为CAN发送进程,根据ADC模块采集电位计AD值转换成的档位,向外发送控制转速。 LCD数据处理模块:LCD数据处理模块使用信号队列向LCD发送档位、转速、水温、燃油液位数据。LCD数据处理模块作为ART-Pi硬件与LCD显示之间的一个桥梁,将ART-Pi数据传输给touchgfx的model,实现硬件与touchgfx数据交互。 LCD显示模块: Touchgfx使用MVP架构实现和硬件的双向交互。如下图所示,Model提供数据,View负责显示,Presenter负责逻辑的处理。 程序中,在Model模块的Model::tick函数中接收消息队列数据,当当前显示页面为仪表盘页面时,将数据变化传输到Presenter,再将数据发送给View将数据显示处理。 界面进入仪表显示界面后,会将页面更新通知到Model,使Model中的数据更新有效,使页面在进入仪表盘页面时转速、水温、油位等数据及时更新。 演示效果视频: 视频内容说明:视频中左侧为CAN分析仪,主要用于数据对比显示,对比显LCD显示数据和CAN数据差异;右下角为串口转CAN上位机(下称上位机),用于与ART-Pi进行CAN数据交互,模拟CAN控制器。ART-Pi上面背有一个扩展板,使用一个系统运行指示LED,一个电位计和一路CAN。系统启动后,LED开始闪烁。电位计用于调整档位,ART-Pi根据档位发送转速控制帧数据,上位机接收到ART-Pi发送转速后,按设定转速发出转速;同时上位机可以发出水温和油位数据显示到LCD屏幕上。上位机无数据发出后3秒,仪表数据清零,指针复位。 比赛感悟本次比赛是我第一次接触RT-Thread系统,通过近一段时间学习,逐渐掌握了一些RT-Thread系统的工作方式,了解其运行机制。通过RT-Thread Studio进行简单的配置,即可让系统运行起来,减少了很多系统方面的设置,对初学者比较容易上手。 网站的文档中心就是一个学习的宝库,里面涉及内容广泛、详细,并配有详细的示例说明,初学者基本可以只通过文档就可以把单片机基本外设功能实现,对初学者学习能起到很大的作用。社区论坛有大量的开发者在使用中提出的问题,通过问题检索,方便查找自己在学习中遇到的问题,同时官方提供的讨论群非常活跃,回答问题及时,大大的赞。RT-Thread提供了各类最新、最流行的软件包,可以很方便的添加到工程中,对项目快速开发提供了很大的帮助。 最后感谢主办方、承办方、赞助商提供了

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

追逐者-桥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值