rt-thread
纵向深耕
这个作者很懒,什么都没留下…
展开
-
用过的三种常用步进电机驱动电路
相对成本较高,可实现半流锁止、半流启动,电流、细分数等参数可通过SPI配置,我有一篇博文实现S曲线启停就是基于TMC2660。电流调节需要调整电位器,输入PWM、方向及使能信号即可控制,价格相对比较便宜。调整细分数及电流即可驱动,驱动电流较大,接口电路光耦隔离。原创 2023-10-29 13:59:50 · 433 阅读 · 0 评论 -
RT-Thread v5.0.2 发布
添加了 format 和静态检查的 paths-ignore。RT-Thread 迎来了全新的版本 v5.0.2,自 v5.0.0 版本发布以来,内核和组件都经历了一系列令人激动的变化和改进。○ 修改了在 fork 子进程时,lwp_struct_copy函数添加了复制working_directory函数。● 重构和优化了 ci 的执行流程,并添加了手动触发和 cppcheck 检查以进行 scons dist。● 新增了llvm-arm 16.0 支持,并添加了 llvm-arm 工作流。原创 2023-10-13 23:47:18 · 432 阅读 · 0 评论 -
通过modbus与串口屏通讯控制
串口屏作为modbus主机,下位机主板作为从机,在从机中建立一张数据表与串口屏作为数据交换缓冲,从机移植freemodbus协议栈,定时响应串口屏的轮询。这种方式驱动串口屏不用关心modbus通讯,只需关注数据是否被修改,如要显示显示,将数据表相应单元的填充数据即可。由于串口屏是以地址方式定位数据单元,以下两个宏用于获取数据表中相应单元的地址比较简便的方法。以下为modbus任务线程,检查数据是否有被用户修改,如被修改进行用户操作处理。modbus初始化将modbus指针指向建立的数据表。原创 2023-10-12 18:04:06 · 377 阅读 · 0 评论 -
TMC2660步进电机驱动
TMC2660步进电机驱动原创 2023-10-10 11:48:09 · 948 阅读 · 0 评论 -
基于rt-thread的CAN、以太网、485的通讯接口
基于rt-thread的CAN、以太网、485的通讯接口原创 2023-10-09 10:37:32 · 498 阅读 · 0 评论 -
LPC54616 基于rt-thread的CAN驱动
lpc54616的rt-thread can驱动原创 2023-10-09 10:11:40 · 222 阅读 · 1 评论 -
步进电机S曲线驱动模块
42步进电机S曲线控制模块原创 2023-10-07 11:32:11 · 91 阅读 · 0 评论 -
机械臂运动控制,通讯的解包->运动控制->数据封包上报过程
基于 stm32f4的通讯协议解包封包,机械臂控制程序原创 2023-10-07 11:08:16 · 254 阅读 · 0 评论 -
利用串口示波器调试PID参数
推荐一个串口示波器软件调试PID原创 2023-09-27 11:16:33 · 451 阅读 · 0 评论 -
开源一个基于的rt-thread系统的烟感采集系统
一个基于的rt-thread系统的烟感采集系统原创 2023-09-26 21:18:16 · 143 阅读 · 0 评论 -
TEC 高精度控温算法
TEC 匀速升降温的实现与恒温要求原创 2023-09-18 01:25:33 · 1116 阅读 · 2 评论 -
硬件设计得好,软件就会多简单,以一个H桥电路来说说
硬件设计得好,软件就会多简单原创 2022-12-03 01:17:04 · 785 阅读 · 0 评论 -
利用EMQX建立MQTT服务器通讯
嵌入式建立MQTT客户端连接服务器,发布,订阅消息原创 2022-11-03 20:00:07 · 901 阅读 · 0 评论 -
嵌入式数据库操作SQLite及FalshDB
嵌入式中常用数据库使用原创 2022-11-03 00:14:59 · 1478 阅读 · 0 评论 -
自建OTA服务器实现设备固件自动更新
实现设备固件自动更新原创 2022-11-01 18:33:57 · 1234 阅读 · 0 评论 -
keil MDK 调试运行中程序
Keil MDK调试运行中的程序原创 2022-10-16 16:01:31 · 832 阅读 · 0 评论 -
rt-thread最小硬件与软件系统
rt-thread最小软件与硬件系统原创 2022-06-16 19:07:24 · 1502 阅读 · 0 评论 -
rt-thread smart vscode 环境搭建错误处理
一、参考连接https://gitee.com/rtthread/ART-Pi-smart/blob/master/documents/quick_start/README.md二、错误处理‘scons’ 不是内部或外部命令,也不是可运行的程序安装pip工具下载 setuptools-0.6c11.tar.gz下载 pip-20.1.tar.gz解压 setuptools-0.6c11.tar.gz,pip-20.1.tar.gzcmd 进入 .\setuptools-0.6c11.tar\原创 2022-04-16 00:12:05 · 1013 阅读 · 0 评论 -
rt-thread nano移植到新唐M031
习惯了在RTOS下的使用回不去裸机写大循环的年代,16K RAM跑起来一、在keil MDK安装相应的组件包,并配置加入工程中二、加入新塘M0的硬件驱动库并加入头文件 路径三、配置rtconfig.h文件四、修改board.c及finsh_port.c文件完成BSP硬件对接修改RT_HEAP_SIZE为合适的堆大小,不然没法编译把retarget.c文件的HardFault_Handler函数注释掉,由rt-thread nano的HardFault_Handler接管依次按照#err原创 2022-03-31 11:50:49 · 1079 阅读 · 3 评论 -
思维导图开发过程应用
思维导图作为项目开发过程日志,进度记录,目标制定,问题分解,任务分解,问题分析过程记录原创 2022-03-15 17:14:34 · 2236 阅读 · 0 评论 -
结构体变量外部调用另一种方法
typedef struct _sys_info{ uint32_t dev_sn; //设备序列号 char dev_str[9]; //设备序列号字符串 net_connect_t net_connect; //0连接断开,1连接到wifi,2连接到服务器 uint32_t hw_ver;原创 2022-03-10 15:51:31 · 1359 阅读 · 0 评论 -
LPC546XX的rt-thread CAN驱动改造
一、rt-thread的CAN框架参考了很多linux机制,例如completion与workqueue,熟悉rt-thread系统学习linux驱动会很轻松,能写linux驱动的也能写rt-thread驱动。二、在测试过程中发现rt-thread的CAN驱动天生有缺陷1、如没有接收端接收CAN数据,发送端会卡死在发送函数2、CAN数据线断开后,发送程序也会卡死错误中断处理函数3、rt-thread的CAN只支持普通CAN,让其同时支持CANFD与CAN三、针对以上问题,对rt-thread的CA原创 2022-02-15 16:38:00 · 639 阅读 · 0 评论 -
【NuMaker-M2354试用】基于rt-thread CAN驱动框架通信评测
1.前言1.1 本章内容本章通过ENV环境配置M2354片上外设CAN的功能,Keil Arm编译,基于rt-thread CAN驱动框架实现开发板和CAN调试器进行CAN通信验证。1.2模块介绍BSP已经对接好了CAN的驱动,只需在系统配置上打开相应的开关即可在ENV环境下,打开系统配置界面,Hardware Drivers Config->On-Chip Peripheral Drivers ->Enable Controller Area Network(CAN)->Ena原创 2022-01-17 17:24:21 · 722 阅读 · 0 评论 -
rt-thread pkgs --update多次出现fal_partition_find问题
出现(init_ok) has assert failed at fal_partition_find.这个错误提示,项目开发过程中出现了多次,一直找不到原因,打开随意添加一个组件,生成工程,然后再删除刚才添加的组件,再生成工程,可解决,虽然可以暂时解决,但一直没找到原因,等有空再找...原创 2021-09-09 16:11:02 · 551 阅读 · 1 评论 -
rt-thread http_ota通过WIFI下载固件文件的内存不足解决
rt-thead、SPI flash、FAL分区、AT框架CPU通过ESP8266 AT指令使用AT框架连接http服务器,下载文件过程中发生内存不足的错误打印1、造成这个报警原因:(1)spi flash单数据线,写入速率较慢。(2)对比以前通过NB IOT升级没问题的原因,也可能是WIFI的速率太快,系统缓存不过来2、查看http_ota_fw_download函数源码,OTA先获取文件大小,再擦除相就的大小flash的空间,而且提示信息也是先有擦除消息打印,再有内存不足打印3、将flash擦原创 2021-09-02 18:42:22 · 657 阅读 · 0 评论 -
利用结构体定义数据存储结构并读写
很多时候读I2C存储芯片,需要定义一堆的地址,读写长度,如果后期在中间插入一个存储,维护的成本就会很高,调试修改都很困难,介绍一种利用结构体定义存储结构的方法,需要用到以下两个宏定义计算结构成员在结构体内的偏移地址,用在I2C的存储结构中很方便知道每个变量的存储地址,修改存储结构也不会影响到程序的修改#define offsetof(TYPE, MEMBER) ((int)(&((TYPE *)0)->MEMBER))计算结构成员的占用的空间sizeof(((CANDIDATE_T*原创 2021-08-28 18:39:39 · 341 阅读 · 0 评论 -
SQLite3 rt-thread填坑
1、在art-pi上运行SQLite3数据读写,查看数据库文件最好使用Navicat Premium,简单易用2、rt-thread配置上的SQLite组件基本是不能用,缺胳膊少腿,需要另外找到缺失文件加上这两个代码对SQLite的二次封装,数据库读写对应用层更加简洁3、首在板上的SPI flash上的LittleFS文件系统读写数据库文件,读还好,速度很快,但写就太慢,写一条记录大概4Kb要将近10秒,后来没办法将数据库文件移到SD卡,文件系统是FAT32,写也就10秒左右,这个测试会影响到硬件原创 2021-07-20 19:35:08 · 1059 阅读 · 1 评论 -
用于多条线程对单条线程消息队列同步
平时需要在两条线程之间做同步操作,线程A通知线程B执行动作,线程B执行完成后返回执行结果给线程A,线程A发送执行命令可以使用消息队列方式,但如果线程B返回执行结果在FreeRTOS可以使用一个API通过线程ID通知到线程A,但在rt-thread没有类似功能,使用消息队列或信号量也可以,但同样有多条线程也需线程B执行动作,这样就显得累赘。其实可以在消息体中定义相应的消息,实现起来很简单。typedef struct _db_msg{ db_cmd_t cmd; //原创 2021-06-30 14:16:00 · 281 阅读 · 0 评论 -
类似modbus的内存读写式设备间通讯模块
/** * @file icmb.c * @brief 基于ican、udp及485的智能机箱通信总线. * @details 第一步先完成基于ican的can总线通讯. * @author ken deng * @date 2020-10-13 * @version A001 * @par Copyright (c): * @par History: * version: ken deng, 2020-1原创 2021-06-02 21:03:29 · 212 阅读 · 3 评论 -
嵌入式开发过程中的一点调试经验
嵌入式开发过程中的一点调试经验嵌入式开发最麻烦的在现场调试过程中或实际运营过程中出现问题很难定位。我在实际开发过程中一点经验分享给大家嵌入式开发调试分为开发阶段调试,现场调试,运行调试以STM32为例,SWD、串口1,BOOT0脚,flash芯片建议作用标配硬件。开发阶段调试就是确定下功能需求后,功能实现阶段,这一阶段的调试主要依靠就是SWD在线调试及串口打印调试。串口1还可以用于STM32的代码烧写,产品发出以后很多时候会把SWD关闭防止固件泄露,这时如果需要更新固件串口1就用得上。在开发阶段也原创 2021-05-11 20:35:16 · 627 阅读 · 0 评论