当前位置:网站首页>RT-Thread改变打印串口(在BSP的基础上添加其他功能)
RT-Thread改变打印串口(在BSP的基础上添加其他功能)
2022-07-28 04:00:00 【追逐者-桥】
前言
使用的芯片: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工具menuconfig、package
5、ENV工具scons
scons --target=...、scons、scons --dist:生成工程、编译、复制工程
二、增加BSP的功能
一开始的模板只开启了一个串口和两个GPIO,但是现实中不可能只用到这两个功能,如何添加BSP功能就成了一个很现实的问题。
RT的BSP可以分为三部分(针对STM32来说的,自己见解):RT-Thread 简介
- CubeMX构建BSP的底层驱动部分
- RT拿底层驱动构成了组件和服务层,提供了函数的API,并引入了实时操作内核
- 开发者使用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并打开调试助手

边栏推荐
- jdbc使用
- MySQL Basics (create, manage, add, delete, and modify tables)
- 高等数学(第七版)同济大学 习题3-6 个人解答
- Greed - 55. Jumping game
- Greedy - 53. Maximum subarray sum
- JDBC usage
- Interview essential skills: SQL query special training!
- Crowdfunding platform system based on JSP & Servlet
- 构建“产业大脑”,以“数字化”提升园区运营管理及服务能力!
- 一名合格的软件测试工程师,应该具备哪些技术能力?
猜你喜欢

un7.27:redis数据库常用命令。

Read Plato farm's eplato and the reason for its high premium

conda虚拟环境总结与解读

It's amazing. This article completely explains the service interface testing

servlet使用

Day08 redis的基础知识

企业数字化建设“三不五要”原则

UBI read only file system

Leetcode58. Length of the last word

Implementation of online rental system based on SSM
随机推荐
Basic knowledge of day08 redis
递归和非递归分别实现求第n个斐波那契数
LeetCode 0141. 环形链表 - 三种方法解决
JDBC usage
Interview essential skills: SQL query special training!
How does MySQL ensure high availability
[P4] check the differences between the two historical versions of the library file
一个仿win10蓝屏的404页面源码
Data mining-01
数据丰富的计算:M.2在边缘遇到AI
月薪28K学员 自动化测试经验分享
Protocols in swift
xml文件使用及解析
[P4] solve the conflict between local file modification and library file
Is there a bonus period for robot engineering
LightPicture – 精致图床系统
My creation anniversary
Selenium--WEB自动化测试工具
21 days, fat brother personally takes you to play oauth2
ServletContext、request、response