
RT-Thread
文章平均质量分 50
小灰灰搞电子
这个作者很懒,什么都没留下…
展开
-
rt-thread移植并使用mavlink教程
rt-thread移植mavlink完整工程原创 2022-12-14 10:54:04 · 446 阅读 · 0 评论 -
rt-thread利用硬件spi驱动OLED12864
OLED 屏幕作为一种新型的显示技术,其自身可以发光,亮度,对比度高,功耗低,在当下备受追捧。而在我们正常的显示调整参数过程中,我们越来越多的使用这种屏幕。我们使用的一般是分辨率为 128x64 ,屏幕尺寸为 0.96 寸(本节用的是1.3寸的)。由于其较小的尺寸和比较高的分辨率,让它有着很好的显示效果和便携性。原创 2022-11-18 10:29:32 · 1171 阅读 · 1 评论 -
rt-thread fatal error: dfs_posix.h: No such file or directory
fatal error: dfs_posix.h: No such file or directory原创 2022-07-25 09:52:56 · 2145 阅读 · 1 评论 -
STM32计算文件、片上flash、外部flash等数据的MD5校验值
首先将文件的md5值在这个网站计算出来代码依赖rt-thread操作系统的Fal和dfs_posix组件。其他地方使用改一下数据读取部分,原创 2022-06-24 17:29:20 · 1294 阅读 · 0 评论 -
rt-thread移植lwip创建TCP服务器
/** 程序清单:tcp 服务端 * * 这是一个 tcp 服务端的例程 * 导出 tcpserv 命令到控制终端 * 命令调用格式:tcpserv * 无参数 * 程序功能:作为一个服务端,接收并显示客户端发来的数据 ,接收到 exit 退出程序*/#include <rtthread.h>#include <sys/socket.h> /* 使用BSD socket,需要包含socket.h头文件 */#include <netdb.h>#in原创 2022-01-14 11:43:07 · 1299 阅读 · 1 评论 -
rt-thread移植lwip创建TCP客户端
/* * 程序清单:tcp 客户端 * * 这是一个 tcp 客户端的例程 * 导出 tcpclient 命令到控制终端 * 命令调用格式:tcpclient URL PORT * URL:服务器地址 PORT::端口号 * 程序功能:接收并显示从服务端发送过来的信息,接收到开头是 'q' 或 'Q' 的信息退出程序*/#include <rtthread.h>#include <sys/socket.h> /* 使用BSD socket,需要包含socket.原创 2022-01-14 11:33:44 · 916 阅读 · 0 评论 -
rt-thread SUFD组件的使用方法
一、SUFD组件介绍 SFUD 是一款开源的串行 SPI Flash 通用驱动库。由于现有市面的串行 Flash 种类居多,各个 Flash 的规格及命令存在差异, SFUD 就是为了解决这些 Flash 的差异现状而设计,让我们的产品能够支持不同品牌及规格的 Flash,提高了涉及到 Flash 功能的软件的可重用性及可扩展性,同时也可以规避 Flash 缺货或停产给产品所原创 2021-10-23 10:57:36 · 1026 阅读 · 0 评论 -
利用rt-thread系统spi设备驱动w25q
一、W25Q简介W25Q64是华邦公司推出的大容量SPI FLASH产品,其容量为64Mb。该25Q系列的器件在灵活性和性能方面远远超过普通的串行闪存器件。W25Q64将8M字节的容量分为128个块,每个块大小为64K字节,每个块又分为16个扇区,每个扇区4K个字节。W25Q64的最小擦除单位为一个扇区,也就是每次必须擦除4K个字节。所以,这需要给W25Q64开辟一个至少4K的缓存区,这样必须要求芯片有4K以上的SRAM才能有很好的操作。W25Q64的擦写周期多达10W次,可将数据保存达20年之久,支持原创 2021-10-22 15:29:15 · 1548 阅读 · 2 评论 -
rt_thread系统移植freemodbus主机刚开始就卡死的解决方法
原因是卡在了事件接收哪儿解决方法是在eMBMasterEnable这个函数中加入xMBMasterPortEventPost( EV_MASTER_FRAME_RECEIVED );这句话,上电就发送一个事件完整工程:eMBErrorCodeeMBMasterEnable( void ){ eMBErrorCode eStatus = MB_ENOERR; if( eMBState == STATE_DISABLED ) { /* Activate原创 2021-10-20 16:05:17 · 1051 阅读 · 0 评论 -
rt-thread自动初始化机制
自动初始化机制是指初始化函数不需要被显式调用,只需要在函数定义处通过宏定义的方式进行申明,就会在系统启动过程中被执行。 例如在串口驱动中调用一个宏定义告知系统初始化需要调用的函数,代码如下:int rt_hw_usart_init(void) /* 串口初始化函数 */{ ... ... /*原创 2021-10-16 11:49:42 · 392 阅读 · 0 评论 -
STM32移植EasyLogger,在终端输出带颜色的日志
一、效果欣赏二、EasyLogger介绍 EasyLogger 是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的 C/C++ 日志库,非常适合对资源敏感的软件项目,例如: IoT 产品、可穿戴设备、智能家居等等。相比 log4c、zlog 这些知名的 C/C++ 日志库, EasyLogger 的功能更加简单,提供给用户的接口更少,但上手会很快,更多实用功能支持以插件形式进行动态扩展。主要特性:1.支持用户自定义输出方式(例如:终端、文件、数据库、串口、485、原创 2021-05-27 09:57:51 · 2313 阅读 · 3 评论 -
H750移植rt_thread操作系统完整工程分享,包括外部FLASH分散加载文件
一、移植注意事项1、在运行外部FLASH存储的代码之前首先要初始化QSPI进入内存映射模式,参考代码://QSPI进入内存映射模式(执行QSPI代码必备前提,为了减少引入的文件,//除了GPIO驱动外,其他的外设驱动均采用寄存器形式)void QSPI_Enable_Memmapmode(void){ unsigned int tempreg=0; volatile unsigned int *data_reg=&QUADSPI->DR; GPIO_InitTypeDef q原创 2021-05-17 15:55:42 · 1117 阅读 · 1 评论 -
移植rt-thread的过程中出现 #20: identifier “time_t“ is undefined或 identifier “clock_t“ is undefined
主要原因是在linux操作系统上这些值时定义的,但是移植到IAR或KEIL中是没有定义的,我查了半天三个值需要定义typedef long int time_t;typedef long clock_t;struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; //一个月中的某天(0 - 31) int tm_mon; int tm原创 2021-04-22 19:22:08 · 2427 阅读 · 0 评论 -
STM32标准库rt-thread工程中移植syswatch组件
一、syswatch组件介绍 系统看守(syswatch)组件 主要功能是保障实时操作系统正常运行,防止系统死机 以及各种异常引起的线程阻塞,保障整个系统长期正常运行。系统看守具备以下几种行为模式:1.系统崩溃或硬件异常导致系统失去调度时,执行 系统复位 恢复系统正常运行。2.当有异常导致某些线程长时间阻塞时,可根据用户的配置实施 系统复位 / 杀掉阻塞线程 / 重启阻塞线程 的方式恢复系统正常运行。二、工作原理简述 系统看守(syswatch)组件 使用实时操作系统中允许的最高优先级作为看守原创 2021-03-12 16:09:55 · 1107 阅读 · 0 评论