解决方法:调试完成后,关闭RTT的控制台的流模式或者将控制台使能至未使用串口 2.联网异常问题 现象:通过以太网连接网络关闭控制台使能后,无法连接网络 原因:以太网连接网络需要DFS联网系统组件的支持,关闭控制台,导致MSH命令行shell异常 解决方法:通过RTTHREAD SETTINGS 同时开启控制台及MSH组件支持或者同时关闭这两个选项...
if (thread != RT_NULL) { rt_thread_startup(thread); } else { ret = RT_ERROR; } return ret; } /导出到 msh 命令列表中 */ MSH_CMD_EXPORT(uart_sample, uart device sample); 测试,可以看到串口0发送了信息”hello RT-Thread!”,用串口调试助手进行数据发送,可以看到串口0接收到数据并且返回数据。
1.默认UART2修改成其他UART; 2. 开机输出的内容修改 在RT-Thread 中 默认的系统输出串口是UART2; 如果想修改成其他串口(以UART1为例子), 分两步走, 1.1. 初始化 对应的串口 (也就是UART1) 1.2 打开 board.c文件 跳转到 函数:uart_init() 将里面的USART2改成USART1; 如下: 2. 修改开机输出信息: 打...
recv_buffer[index++]=buffer; //写入数组 if(buffer=='\n') //一般串口调试工具发送以/r/n结束 recv_buffer[index-1]='\0'; //把/r改写为字符串结束符号'/0' 并放弃写入'/n' rt_device_write(dev_uart4, 0,recv_buffer, index);//给串口返回写入接收到的数据 index = 0;//索引清零 数组可以...
1)配置串口 打开keil工程,使用STM32CubeMX配置底层接口(路径一般在工程目录下boardCubeMX_Config文件夹里面) 不懂的同学可以看下我之前的博客:RT-Thread零基础快速入门第1讲——新建工程 先打开对应的串口(Mode选择Asynchronous即可),然后检查GPIO是否和原理图一致。
1) 配置shell使用串口1:RT-Thread Kernel ---> Kernel Device Object ---> 修改the device name for console为uart1。 2) 勾选Using UART1、Using UART2,选择芯片型号为STM32F407ZE,时钟源为外部8MHz,如图所示: 图A.3 使用menuconfig配置串口
打开我们的软件后,点击文件–》新建–》RT-thread 项目,然后取个项目名字,就叫temp_prj吧,然后我们的不是开发板选择 基于芯片,然后我用我们的串口1作为调试口。 经过几秒的加载我们的工程文件就出来了。。。 这里面包括了stm32的库文件,RT-thread的相关文件等,确实很方便额。
首先是准备步骤:搭建环境,编译生成mo。这里可以参考RT_Thread编程指南中的28节 动态模块章节,使用过程中注意linux环境中也需要设置环境变量(RTT_ROOT、BSP_ROOT)。 我这里使用的是github仓库中的hello模块。编译生成hello.mo,在msh中执行hello,输出hello,这一步工作完成。
在rt_hw_usart_init()里,完成了串口参数及回调函数的配置,但这里涉及到两个层,之前文章有提到过,在serial.c中实现的是串口设备驱动框架层,这是属于RT-Thread驱动的一部分,而在drv_usart.c中是STM32F4 MCU提供的设备驱动层,它向serial.c提供接口。了解了这些,我们再对照代码分析。