在STM32F407VGT6上使用serialX的步骤

发布者:RadiantEnergy最新更新时间:2024-09-06 来源: elecfans关键字:STM32F407VGT6  步骤 手机看文章 扫描二维码
随时随地手机看文章

RT-Thread Studio版本: 2.2.5,RT-Thread v4.1.0 ,

新建RTthread STM32F407VGT6项目。打开CUBEMAX配置调试口,外部时钟,串口1(控制台),串口3,串口开启中断,生成代码。
删除掉原来的serial.c; serial.h; serialV2.c; serialV2.h;
drv_uart.c; drv_uart.h; drv_uart_V2.c; drv_uart_V2.h;
并使用serialX.c; serialX.h; drv_usartX.c; drv_usartX.h 替换
修改/rt-thread[4.1.0]/components/drivers路径下的Kconfig文件,找到if RT_USING_SERIAL修改一段代码,使setting页面可以配置serialX。


if RT_USING_SERIAL
choice
prompt 'Choice Serial version'
default RT_USING_SERIAL_X
config RT_USING_SERIAL_X
bool 'RT_USING_SERIAL_X'
endchoice
config RT_SERIAL_USING_DMA
bool 'Enable serial DMA mode'
default n
endif

4.修改/rt-thread[4.1.0]/components/drivers/serial 文件夹下的SConscript文件代码,以使用serialX.c文件

from building import *
cwd = GetCurrentDir()
CPPPATH = [cwd + '/../include']
group = []
if GetDepend(['RT_USING_SERIAL']):
if GetDepend(['RT_USING_SERIAL_X']):
src = Glob('serialX.c')
group = DefineGroup('DeviceDrivers', src, depend = ['RT_USING_SERIAL_X'], CPPPATH = CPPPATH)
Return('group')

5.找到rt_device.h文件的SERIAL部分,修改代码,使之可以包含serialX.h 文件。

#ifdef RT_USING_SERIAL
#ifdef RT_USING_SERIAL_X
#include 'drivers/serialX.h'
#endif
#endif /* RT_USING_SERIAL */

6.打开uart_config.h文件,找到#define UART1_CONFIG部分删除掉结构体中.tx_pin_name和 .rx_pin_name成员。而且后续使用哪个串口就必须修改相对应的结构体宏定义。

7.打开drv_usartX.c文件,按需求增加自己所需要的串口代码
比如用到串口3中断,不使用DMA, 则需要添加串口3 中断函数。

#if defined(BSP_USING_UART3)
void USART3_IRQHandler(void)
{
/* enter interrupt /
rt_interrupt_enter();
uart_isr(&(uart_obj[UART3_INDEX].serial));
/ leave interrupt /
rt_interrupt_leave();
}
#endif / BSP_USING_UART3 */
8.找到drv_common.c文件的串口部分,修改代码

#ifdef RT_USING_SERIAL
#ifdef RT_USING_SERIAL_X
#include 'drv_usartX.h'
#endif /* RT_USING_SERIAL /
#endif / RT_USING_SERIAL_X */

9.使用下载来的文件替换掉rtdef.h文件,并且将新的文件中rt_mutex结构体定义中的value成员的注释关掉

10.打开components.c文件,修改rit_end函数
这里必须修改,否则控制台shell线程不会自启动

static int rti_end(void)
{
return 0;
}
INIT_EXPORT(rti_end, '7.end');

11.如果关于serialX的相关文件已经按以上步骤修改了,但是依找不到文件,可以尝试在setting中更新配置(比如开关串口DMA选项)。

board.h中添加

#define BSP_USING_UART1
#define BSP_USING_UART3
main函数中打开串口

rt_device_open(u3_dev, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_INT_TX | RT_DEVICE_OFLAG_NONBLOCKING);

完成!

1.jpg


关键字:STM32F407VGT6  步骤 引用地址:在STM32F407VGT6上使用serialX的步骤

上一篇:基于STM32的智能循迹小车
下一篇:stm32单片机5v电压怎么提供

推荐阅读最新更新时间:2024-11-12 21:40

722分光光度计的使用方法和步骤_722型分光度计注意事项
分光光度法测量的理论依据是伯郎—比耳定律:当容液中的物质在光的照射和激发下,产生了对光吸收的效应。但物质对光的吸收是有选择性的,各种不同的物质都有其各自的吸收光谱。所以根据定律当一束单色光通过一定浓度范围的稀有色溶液时,溶液对光的吸收程度A与溶液的浓度c(g/l)或液层厚度b(cm)成正比。其定律表达式A=abc (a是比例系数)。当c的单位为mol/l时,比例系数用ε表示,则A=εbc称为摩尔吸光系数。其单位为L·mol-1·cm-1它是有色物质在一定波长下的特征常数。 T(透光率)=I/I0A(吸光度)=-lgT或A=K·C·L(比色皿的厚度)测定时,入射光I,吸光系数和溶液的光径长度不变时,透过光是根据溶液的浓度而变
[测试测量]
5个步骤教你如何检查单片机是否正常工作
最近终于有充足的时间来学习计算机组成原理与单片机原理,简单的说说自己对这两门课程的感受。 1. 首先说计算机的两大分支:通用型计算机,单片机。是两个不同的发展方向。我们知道计算机有五大部件组成,即 运算器 控制器 存储器 输入设备 输入设备。 单片机是集成在一个IC芯片上的,IC芯片上集成了运算器 控制器 以及IO接口,相当与一个计算机系统了。而通用计算机是分模块的,比如内存条,CPU,显卡,这些设备是通过系统总线连接成一个计算机系统。所以可以看出,单片机是微计算机系统,正是因为小巧,价格也便宜,很适合应用于嵌入式系统。当然单片机的功能就没有通用型计算机的功能那么强大了。 2. 再说一下计算机组成原理,计算机组成原理
[单片机]
STM32F407VGT6+LAN8720 调试笔记
一、硬件方面 由于用到工业以太网,所以需要增加STM32F407+LAN8720作为联网 调试过程中,插入网线,毫无反应 分析: 1、测25M晶振正常、测50M输出正常,可以判断LAN8720本身工作正常 2、再查封装、对应引脚功能,封装没画错 3、对比参考电路,各个电阻电容正常 4、基于以上可以判断基本原理图是正确的、封装也是正确的、IC工作也是可以的,问题就在于那个变压器端 5、想起当初由于找不到22nf的电容,随便焊了一个100nf上去,然后就没然后了,果断取掉,一切正常,后补10nf 二、软件上面 有demo是STM32F407ZET6+LAN8720的,我用的是STM32F407VGT6+LAN8720,所以RM
[单片机]
STM32F407VGT6+LAN8720 调试笔记
电缆故障的探测的四个步骤
  【电缆故障的探测的四个步骤】电缆故障的探测一般要经过诊断、测距、路径测寻和定点四个步骤。   1、诊断   电力电缆由于机械损伤、绝缘老化、施工质量低、过电压、绝缘油流失等都会发生故障。实践证明,多数供电事故都发生在电力的分配网络,zui难排查的又属于电力电缆。因此科学掌握电缆故障的测试方法对供电企业来说是很重要的。   根据故障的性质可以分为低电阻接地或短路故障、高电阻接地或短路故障、断线故障、断线并接地故障和闪络性故障。无论是高压电缆或低压电缆,在施工安装运行过程中经常因短路、过负荷运行、绝缘老化或者外力损坏等原因造成故障。电缆故障大抵分为接地、短路、断线这三大类。另外三芯电缆故障主要有一下几个方面:一芯或者两芯接
[测试测量]
机器人对齐电极臂前的执行步骤
C-5000 焊钳   位置 a 固定式电极臂 位置 b 移动式滑动电极 位置 c 驱动电机 位置 d 托架及支撑板,用于手动式快速更换离合器 位置 e 导电带 位置 f 变压器   对齐 C-5000 电极臂 电极臂未最佳相互对齐可能是焊点不干净或工件变形的原因。 这可以根据结构相应进行调整。 C 型焊钳要么两个电极都可以转动,要么滑动电极可对齐至固定电极。 下面描述这两种可能性。 对齐电极臂前先执行下述步骤:  步骤 1: 切断焊钳的。  步骤 2: 关闭冷却水循环。  步骤 3: 将带焊钳的机器人移至一个安全的维护位置。 或者分离机器人焊钳与机器人,并将机器人焊钳定位至适合进行维护工作
[机器人]
数显电子比重仪的操作步骤解析
电子数显比重仪,是运用阿基米德原理,结合现代微电子技术,直接数字显示读出被测材料的比重计,那么直读式电子比重仪是如何测量的呢?两步骤精准快。数显电子比重仪操作步骤 第一步是将要测试的产品,放在电子直读比重计的测量平台上,测量空气中的重量,待数值稳定后按键仪器自动存储记忆数值; 第二步是测量产品在水中测量台上的重量,按键后仪器就自动显示出被测试产品的比重值了。 直读式数显电子比重仪,2步测量过程,操作上是很简单方便的,精准度依不同的型号有不同的精度,可以根据你的测量需求来选择。常用的密度(比重)值到小数点后三位0.001也就是千分之一,后四位0.0001的是万分之一。
[测试测量]
数显电子比重仪的操作<font color='red'>步骤</font>解析
变频器的安装环境及步骤
变频器的安装步骤都大致类似,但也有一些生产厂家会对安装步骤和外界环境有一些特别的要求,下面给大家介绍变频器的一般安装步骤。首先要对变频器的主回路进行安装前的绝缘测试,其次是对控制回路进行安装前的绝缘实验。 接下来要对变频器的安装环境作一些要求和安排。具体如下: (1)环境温度 一般适用在-10℃-40℃、湿变在底于90%的环境工作中。环境温度若高于40℃时候,每升高1℃,变频器应降额5%使用。 (2)安装现场的普通要求 1)无腐蚀、无易燃易爆气体、液体 2)无灰尘、漂浮性的纤维及金属颗粒。 3)所安装场所的基础、墙壁应坚固无损伤、无震动 4)要避免阳光直射 5)无电磁干扰 (3)变频器的安装空间及通风 变频器内部
[嵌入式]
rt-thread 驱动篇(四)serialX 多架构适配
前言 自笔者提出 serialX 串口驱动到今天近半年了,当初只在 STM32F4 NUC970 两个系列芯片上做过理论验证。一个是 ARM CM4 核心架构,一个是 ARM9。这两款芯片能完美实现笔者的需求。 经过这半年的实践考验,笔者还是相信 serialX 的实力的,最近这几天笔者尝试在 N32 AB32 RA6M4 上适配 serialX,下面就向各位汇报一下适配结果。 芯片 STM32F4 NUC970 N32 AB32 RA6M4 GD32 F4 架构 CM4 ARM9 CM4 RISC-V CM33 CM4 N32G45 因为这个也是 CM4,和 STM32F4 相较而言,可能差别很小。让笔者感到
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多往期活动
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved