RT-Thread
Davidysw
一个在青岛工作的嵌入式爱好者
展开
-
Rtthread学习笔记(二十三)RT-Thread内核-线程间通信
一、邮箱查看官方例程线程间通信RT-Thread 操作系统的邮箱用于线程间通信,特点是开销比较低,效率较高。邮箱中的每一封邮件只能容纳固定的 4 字节内容(针对 32 位处理系统,指针的大小即为 4 个字节,所以一封邮件恰好能够容纳一个指针)。典型的邮箱也称作交换消息,如下图所示,线程或中断服务例程把一封 4 字节长度的邮件发送到邮箱中,而一个或多个线程可以从邮箱中接收这些邮件并进行处理。1、邮箱的使用场合邮箱是一种简单的线程间消息传递方式,特点是开销比较低,效率较高。在 RT-Thread 操作原创 2020-05-22 08:33:03 · 1197 阅读 · 1 评论 -
Rtthread学习笔记(二十一)RT-Thread使用Esp8266,配置其AT Client URC数据处理
一、原创 2020-05-09 14:44:28 · 3363 阅读 · 0 评论 -
Rtthread学习笔记(二十)RT-Thread使用Esp8266,连接远端服务器IP端口发送数据
一、RT-Thread使用SDIO驱动SD卡挂载文件系统,添加bootloader,从SD卡中更新程序。原创 2020-05-08 13:28:32 · 7266 阅读 · 6 评论 -
Rtthread学习笔记(十九)RT-Thread Studio使用SDIO驱动SD卡挂载文件系统
一、rtthread使用SD卡1、配置RT-ThreadSetting开启SDIO,配置保存。2、开启board.h及stm32f1xx_hal_conf.h的宏定义3、使用STM32cube配置引脚及通讯参数生成配置文件,复制stm32f1xx_hal_msp.c中void HAL_SD_MspInit(SD_HandleTypeDef* hsd)到board.c的最后,...原创 2020-04-29 13:43:00 · 9007 阅读 · 8 评论 -
Rtthread学习笔记(十八)RT-Thread Studio添加freemodbus主机和从机
有些项目需要同时既做主机读取传感从机器的数据,然后在做从机整合数据与上层主控单元进行通讯,这时候就需要程序中即存在主机,又存在从机。这里就做下测试,主机用串口2,从机用串口3,然后将串口2与串口3连接,便可以进行仿真通讯验证。一、...原创 2020-04-28 10:34:49 · 3658 阅读 · 3 评论 -
Rtthread学习笔记(十七)添加freemodbus主机遇到写数据成功,读数据失败
解决办法:将原来115200的波特率修改为19200,然后主机读数据成功。一、modbus主机读数据失败现象添加freemodbus主机的时候遇到了奇怪的问题,记录下来。先说明一下情况,前两天按照RT例程把freemodbus主机移植完毕,添加modbus主机并且与上位机modbus slave从机的写指令(10)通讯成功,把数据实时写进了上位机从机,然后想起来忘记测试读指令(03)通讯是否...原创 2020-04-27 15:25:34 · 3404 阅读 · 18 评论 -
Rtthread学习笔记(十六)RT-Thread Studio添加freemodbus从机
一、添加freemodbus从机1、配置RT-Thread Settings2.开启board.h宏定义3.根据需求配置modbus通讯参数在main函数中初始化mb_slave_samlpe()4.验证下载modbus主机软件,安装到电脑上模拟从机设备。modbus主机下载链接记得从机这里将串口设定为了串口3,对应的引脚为PB10、PB11,从机地址01。既然验证从机...原创 2020-04-26 14:41:07 · 3500 阅读 · 3 评论 -
Rtthread学习笔记(十五)RT-Thread Studio添加freemodbus主机
一、添加freemodbus主机1.配置RT-Thread Settings保存并添加到工程中2.开启board.c宏定义3.根据需求配置modbus通讯参数配置参数都在sample_mb_master.c中4.验证下载modbus从机软件,安装到电脑上模拟从机设备。modbus从机...原创 2020-04-26 11:23:39 · 2498 阅读 · 4 评论 -
Rtthread学习笔记(十四)RT-Thread Studio使用软件定时器
一 、软件定时器软件定时器是由操作系统提供的一类系统接口,它构建在硬件定时器基础之上,使系统能够提供不受数目限制的定时器服务。RT-Thread 操作系统提供软件实现的定时器,以时钟节拍(OS Tick)的时间长度为单位,即定时数值必须是 OS Tick 的整数倍,例如一个 OS Tick 是 10ms,那么上层软件定时器只能是 10ms,20ms,100ms 等,而不能定时为 15ms。RT...原创 2020-04-22 14:14:48 · 2444 阅读 · 0 评论 -
Rtthread学习笔记(十三)RT-Thread Studio开启硬件看门狗Watchdog
一、开启硬件看门狗Watchdog1、配置RT-Thread Settings2、开启stm32f1xx_hal_conf.h中的宏定义原创 2020-04-22 11:26:39 · 3447 阅读 · 0 评论 -
Rtthread学习笔记(十二)RT-Thread Studio开启硬件定时器HWTIMER
一、1.配置RT-Thread Settings2.开启board.c和stm32f1xx_hal_conf.h的宏配置3.用stm32cube配置TIM相关驱动内容这里只使用了定时器基础的计数功能,只需要进行简单的配置即可。得到void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)函数即可,放在board.c后面。void ...原创 2020-04-22 09:57:47 · 2725 阅读 · 1 评论 -
Rtthread学习笔记(十一)RT-Thread Studio开启PWM输出
一、1、配置RT-Thread Settings配置完毕记得保存配置2、开启board.h及stm32xxxx_hal_config.h的宏定义这里只需要先开启宏,函数复制看下面的步骤。3、复制PWM初始化函数初始化相关的函数有两种获取方式,第一种可以使用stm32cube配置工程,然后打开工程的stm32f1xx_hal_msp.c和main.c进行复制;第二种可以打开RTThr...原创 2020-04-21 15:16:08 · 6173 阅读 · 2 评论 -
Rtthread学习笔记(十)RT-Thread Studio的开启SPI1总线,挂载外部flash(W25Q64)做从线设备,使用fatfs elm文件系统
一、步骤1.打开RT-Thread Setting中软件模拟I2CW25Q64是华邦公司推出的大容量SPI FLASH产品,其容量为64Mb。W25Q64将8M字节的容量分为128个块,每个块大小为64K字节,每个块又分为16个扇区,每个扇区4K个字节。W25Q64的最小擦除单位为一个扇区,也就是每次必须擦除4K个字节。2.开启board.h/stm32F1xx_hal_config....原创 2020-04-20 14:37:24 · 3429 阅读 · 1 评论 -
Rtthread学习笔记(九)RT-Thread Studio的开启SPI1总线,外部flash(W25Q64)做从机设备
一、步骤1.打开RT-Thread Setting中软件模拟I2C2.开启board.h/stm32F1xx_hal_config.h中关于SPI的宏定义3.用stm32cube初始化spi相关内容复制cube中stm32f1xx_hal_msp.c中的void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)到board.c中,HAL库会自动初始化该...原创 2020-04-20 14:34:55 · 4772 阅读 · 3 评论 -
Rtthread学习笔记(八)RT-Thread Studio的软件I2C驱动开发
RT-Thread 的 I2C 设备驱动框架即支持硬件 I2C 也支持软件模拟 I2C。由于软件用起来比较方便,随便设置引脚,这里尝试开启一下软件I2C。一、步骤1.打开RT-Thread Setting中软件模拟I2C2.开启board.h中关于I2C的宏定义3.直接仿照官方例程初始化读写所需的I2C设备例子:/* * Copyright (c) 2006-2020, RT-...原创 2020-04-18 14:37:26 · 5687 阅读 · 2 评论 -
Rtthread学习笔记(七)RT-Thread Studio结合stm32cube ADC设备使用示例
1.配置RT-Thread Settings2.开启ADC1宏定义3.使用STM32CUBE配置参数void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)复制到board.c末尾处void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc){ GPIO_InitTypeDef GPIO_InitStruct;...原创 2020-04-17 10:37:47 · 2989 阅读 · 6 评论 -
Rtthread学习笔记(六)串口设备使用示例--波特率等通讯参数修改
一、串口通讯参数修改1.直接使用rt配置按照官方网站尝试着修改了一下串口2的波特率等参数,结果怪自己少添加一个头文件,一直查下面的错误,毫无头绪,然后发现需要包含#include <rtdevice.h>这个头文件,解决问题。#define SAMPLE_UART_NAME "uart2" /* 串口设备名称 */static rt_device_t ser...原创 2020-04-16 13:53:32 · 4848 阅读 · 0 评论 -
Rtthread学习笔记(五)串口设备使用示例--DMA 接收及轮询发送
一、DMA 接收及轮询发送当串口接收到一批数据后会调用接收回调函数,接收回调函数会把此时缓冲区的数据大小通过消息队列发送给等待的数据处理线程。线程获取到消息后被激活,并读取数据。一般情况下 DMA 接收模式会结合 DMA 接收完成中断和串口空闲中断完成数据接收。运行序列图如下图所示:二、步骤1.注册uart2 board.h2.开启DMA stm32f1xx_hal_conf.h...原创 2020-04-14 16:46:48 · 6643 阅读 · 7 评论 -
Rtthread学习笔记(四)串口设备使用示例--中断接收及轮询发送
一、串口设备使用示例–中断接收及轮询发送串口数据接收和发送数据的模式分为 3 种:中断模式、轮询模式、DMA 模式。在使用的时候,这 3 种模式只能选其一,若串口的打开参数 oflags 没有指定使用中断模式或者 DMA 模式,则默认使用轮询模式示例代码的主要步骤如下所示:1.首先查找串口设备获取设备句柄。2.初始化回调函数发送使用的信号量,然后以读写及中断接收方式打开串口设备。3.设置...原创 2020-04-14 14:23:45 · 9742 阅读 · 3 评论 -
Rtthread学习笔记(三)RT-Thread Studio 结合 STM32CubeMx 开发其他驱动文档
一、RT-Thread Studio 驱动支持概况驱动概况当前 RT-Thread Studio 驱动开发方式主要分为二种1、由 RT Thread Studio 自动生成,无需修改任何文件或者简单定义几个宏即可直接使用的驱动,如 GPIO,UART,I2C,SPI,SDIO 和 ETH 等。2、没有对接到设备驱动框架,可直接使用 HAL 库函数进行开发的驱动,如 DAC,FSMC 等。...原创 2020-04-14 10:32:35 · 4466 阅读 · 0 评论 -
Rtthread学习笔记(二)使用外部晶振时钟HSE
一、创建RT-Thread Studio工程二、创建STM32Cube工程三、替换SystemClock_Config()函数1.在stm32cube创建的工程main.c中复制void SystemClock_Config(void),2.打开RT-Thread Studio工程,替换board.c中的SystemClock_Config();3.编译下载...原创 2020-04-14 09:20:45 · 3128 阅读 · 1 评论 -
Rtthread学习笔记(一)空闲线程钩子函数
有活干活,没事学点,记录笔记方便查看。一、空闲线程钩子函数空闲钩子函数是空闲线程的钩子函数,如果设置了空闲钩子函数,就可以在系统执行空闲线程时,自动执行空闲钩子函数来做一些其他事情,比如系统指示灯、功耗管理、看门狗喂狗、CPU使用率。可以设置4个空闲钩子函数。设置 / 删除空闲钩子的接口如下:rt_err_t rt_thread_idle_sethook(void (*hook)(void...原创 2020-03-12 14:30:26 · 2633 阅读 · 1 评论 -
RT-ThreadStudio下载出错Unknown command line option -ExitOnError.
RT-ThreadStudio下载出错由于安装RT-ThreadStudio时默认使用了电脑原来安装的SEGGER J-Link V4.90,不支持ExitOnError命令,这里改为RT-ThreadStudio自带的SEGGER,选择升级版本。点击下载,成功。...原创 2020-01-15 10:43:17 · 811 阅读 · 0 评论