{/*串口接收到数据后产生中断,调用此回调函数,然后发送接收信号量*/rt_sem_release(&rx_sem);returnRT_EOK; }/** * 串口接受线程 * @param parameter*/staticvoidserial_thread_entry(void*parameter) {charch;while(1) {/*从串口读取一个字节的数据,没有读取到则等待接收信号量*/while(rt_device_read(s...
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接收到数据并且返回数据。
建议:如果只是测试串口功能的话可以直接添加示例文件,但是实际应用中还是建议新建一个文件,然后编写串口的应用代码,再把这个文件加入到keil工程里面。 参考:RT-Thread零基础快速入门第2讲——添加新文件到工程 不管用哪种方法,示例代码添加进来之后还是要按照自己的需求修改配置,比如串口号,波特率,串口接收的数据处理等。
选择RT-Thread Studio的文件->新建->RT-Thread项目 2.选择保存的目录,选择使用的芯片,选择串口及引脚,选择下载工具 3.生成的工程使用内部时钟(在drv_clk.c文件中),往串口输出信息,这个工程可以直接编译下载到芯片中校验工程的正确性。 (二)使用CubeMX生成时钟配置和外设配置 1.在CubeMX中选择使用的STM32F103VE芯片...
找到大概70行 可以看到 rt_kprintf 打印数据的串口已经在此处定义 然后我需要使用的串口设备 例如 uart4 则仿照上述 根据原理图引脚加如上宏定义 其中串口号和引脚要根据原理图来定 此处实例为UART4 主函数中代码如下,以下做详细解读 1.查找设备 随后回到我们需要使用串口的.c文件 ...
下载RT-Thread 源码 进入rt-thread spstm32f4xx-HAL 目录,在 env 命令行中输入 menuconfig,进入配置界面,使用 menuconfig 工具(学习如何使用)配置工程。 (1) 配置 shell 使用串口 1:RT-Thread Kernel —-> Kernel Device Object —-> 修改 the device name for console 为 uart1。
2、消息队列打印串口数据 消息队列就是通过 RTOS 内核提供的服务,任务或中断服务子程序可以将一个消息放入到队列。 同样, 一个或者多个任务可以通过 RTOS 内核服务从队列中得到消息。注意这里消息队列传递的是真正的数据,不是和其他RTOS一样传递的地址信息,通常, 先进入消息队列的消息先传给任务,也就是说,任务先得...
(4)因为RT-Thread的FinSH是默认使用的串口1,因此,我们需要打开串口1。 (5)官方推荐STM32F103系统主频为72MHZ,因此这里设置为72MHZ。 (6)对外设初始化的文件单独生成.c/.h文件,最终生成代码,并且关闭STM32CubeMX。 (7)打开RT-Thread studio,出现如下弹框,点击确定。
1、检查串口配置 使用正点原子开发板,默认是能够直接打开串口的,但考虑到读者可能采用其他开发板,调试串口位置不同,故此处检查一下串口默认配置。 在env工具中输入menuconfig,调出图形配置界面。 在路径 RT-Thread Kernel -> Kernel Device Object 中查看 the device name for console 中的值,需要与自己硬件上对应起...