![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RT-Thread
文章平均质量分 52
大饼酱人
目前小白菜
展开
-
RT-Thread-GD32的SPI在切换同一总线不同挂载设备时会出现切换后乱发送数据的问题
RTT的SPI设备通信切换机制是每次切到另一个不同的子设备前会根据之前注册时的设备模式进行初始化spi,而GD32的spi问题是在切换几次后发送数据会变乱,一开始以为是RTT的问题,但是一直仿真到spi_i2s_data_transmit这个标准库函数,函数形参都一样,但是出来的波形是对不上的,所以感觉是GD32的spi配置BUG,索性在spi_configure中的gd32_spi_init(spi_device);前加了一个spi_i2s_deinit(spi_periph);...原创 2022-07-29 19:49:28 · 666 阅读 · 0 评论 -
关于easyflash v3.3使用过程的记录
开源地址https://github.com/armink/EasyFlash开源作者的一个帖子:https://www.amobbs.com/thread-5624863-1-1.html已经更到V4了,但是使用的是ST的L4系列单片机,不能逆序写入,所以还是用的V3版本使用的时候偶尔出现过空间已满,还特别不好复现,就把源代码过了一遍关于磨损平衡不是真正的磨损平衡,只是先一直向一个扇区不断的擦写读,等把这个扇区写坏了,再往下平移一个扇区,而且是只要这个扇区里面有一次写或者擦除失败都会平移到下一扇区,V原创 2022-07-06 19:41:34 · 511 阅读 · 0 评论 -
移植完整版RT-Thread到GD32F4XX(详细)
**主要参考文档:rt-thread-master\rt-thread-master\bsp\gd32\docs\GD32系列BSP制作教程.md****GD32F4xx_Firmware_Library_User_Guide_V1.0.pdf****GD32F4xx_yonghushouce_Rev2.6.pdf****GD32F427xx_Datasheet_Rev1.0.pdf****GD32407R_START_Demo_Suites****过程中的关键点:**1. ..........原创 2022-06-17 19:46:22 · 7268 阅读 · 3 评论 -
移植RT-Thread到GD32上
主要参考文档:docs/GD32系列BSP制作教程.mdgithub地址:https://github.com/RT-Thread/rt-thread/tree/master/bsp/gd32/docs一些疑惑点:例程的SConscript比stm32l4的多了个:Import(‘RTT_ROOT’)stm32l4的SConstruct 多了:set RTT_ROOTif not os.getenv(“RTT_ROOT”):RTT_ROOT=“rt-thread”stm32l4的原创 2022-05-19 18:10:40 · 833 阅读 · 0 评论 -
RT-Thread内部机制
本来想看韦东山直播的RT-Thread内部机制,没有赶上,但是在b站找到了他的系列视频,https://www.bilibili.com/video/BV17U4y1K7EL?p=1目前看到了P16,主要是一些“前情提要”,后面的是关于RT-Thread常用模块内部机制,在RT-Thread官方文档上也能看到;下面是P16前的一些个人认为重要内容截图,链表不太熟,查的其它资料。ARM架构:汇编:线程:...原创 2022-02-02 09:29:07 · 712 阅读 · 0 评论 -
SYN531R 433M解码程序
#define _start_us_min 160 //9ms#define _start_us_max 240 //12ms#define _num0_us_min 18 //0.8ms#define _num0_us_max 28 //1.4ms#define _num1_us_min 4 //200us#define _num1_us_max 12 //600usvoid soft_count_433m(void);void so.原创 2021-03-04 11:43:29 · 3558 阅读 · 7 评论 -
RT-Thread Studio怎么打开一个已存在的项目
首先以项目文件的上一级目录为根目录创建工作空间创建工作空间后会生成下图的一个文件原创 2021-03-04 10:51:27 · 6791 阅读 · 3 评论 -
rtthread AT指令下发程序
本来想用现成的AT组件的,结果发现添加后,程序压缩后还比原来大了20k,可能是因为下图几个服务层都选中了,AT和SAL是自动选中,libc不选中会出现[makefile:87: rtthread.elf] 的报错。程序太大了,单片机放不下了,只能自己写了一个简易的at下发程序,在之前串口不定长基础上,参考往期博客rtthread串口接收不定长数据 具体如下:struct rt_semaphore at_rx_sem2;char at_rx_data[50];/****at指令下发及检..原创 2021-02-25 18:18:23 · 1193 阅读 · 0 评论 -
rtthread iic读取M24C64的测试程序
先加软件包下面两个参数根据实际情况修改修改board.h里面的引脚定义添加驱动/********EEPROM掉电保存*********/uint8_t IIC2_WriteBuffer_Test[16], IIC2_ReadBuffer_Test[16];void iic_write_test(void)//iic写{ uint16_t i; for(i=0; i<16; i++) IIC2_WriteBuffer_Test[i原创 2021-02-23 11:32:33 · 1197 阅读 · 1 评论 -
使用rtthread硬件定时器中遇到的问题
用的是定时器1,奇怪的是在回调函数里面没有看见换成定时2倒是可以调用回调函数了,但是时间上差了100倍,找到原因好像是MX_TIM2_Init();定时器初始化没起作用换了个定时器16,可以了,可能是之前用定时器1 2做pwm没删干净?未验证...原创 2021-02-05 16:55:04 · 1247 阅读 · 0 评论 -
rtthread串口接收不定长数据
之前做过DMA加串口空闲中断的方式接收不定长数据,想移植过来,但是那样的话就用不上rtthread自带的信号量这个内容了,于是基于信号量做了一个不定长接收的功能,基本思路是用两个字节间的时间间隔来做区分两帧的依据,用信号量好处不用另外开定时器,代码如下:#define SAMPLE_UART4_NAME "uart4" /* 需要操作的设备 */static struct rt_semaphore rx_sem4; /* 信号量 */static rt_原创 2021-02-03 19:56:32 · 4329 阅读 · 4 评论 -
基于RTT对STM32L476进行OTA(下)
用无线方式升级目前两个思路:1是借助一个可以进行TCP连接的串口透传模块HLK7628N首先修改ymodem传输串口到7628N所在的串口将if (!rym_recv_on_device(&rctx, rt_console_get_device(), RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX, ymodem_on_begin, ymodem_on_data, NULL, RT_TICK_PER_SECOND))中的rt_console_get_原创 2021-02-02 19:03:47 · 492 阅读 · 0 评论 -
基于RTT对STM32L476进行OTA(中)
之前L431一直卡在bootloader那里的问题原因是因为硬件上用了ISP自动下载电路,如下图,实际rtthread不需要这部分电路,而且串口还会对boot0造成干扰,导致每次软复位单片机都重启不了,必须断电才行,而供电又是用的USB,所以出现了一直无法打印bootloader上电打印的提示,因为插上USB后再打开USB串口,可能已经打印完了,或者打开串口瞬间给了boot0一个异常电平,导致单片机进入自带的IAP模式把R13去掉,烧录生成的boot.bin可以正常打印了,如下图..原创 2021-01-29 16:37:06 · 602 阅读 · 1 评论 -
RT-Thread完整版入门
先入门RT-ThreadStudio参考比较常用的项目编译碰到一些奇怪问题,可以清理一下再全部构建试一下常用的快捷键,鼠标放到在某个函数上点一下,按F3进入函数体内,或者按住ctrl点击函数;Alt+左键,返回上一级;ctrl+H进行搜索;ctrl+/进行注释,再点一次取消注释关于串口的dma,下面这么写,串口2是没问题的,串口4会报错'UART4_RX_DMA_INSTANCE' undeclared (first use in this function) ua...原创 2021-01-14 17:19:08 · 3607 阅读 · 1 评论 -
使用cubemx移植RT-Thread Nano
参考没有提到的是要把系统时钟源换一下,可以换到定时器1或其它,因为系统时钟被RTT用了,会冲突点击跳转时下图问题,.s文件是组合语言源代码,汇编居多,一般是C编译产生的中间代码 关于context_rvds.s参考解决方法:把文件类型换成二进制格式再编译一下注意在board.c上除了添加#include "main.h" 还要添加extern void SystemClock_Config(void);关于动态线程和静态线程参考关于时间片和线程优先级如果在主线程m..原创 2020-12-31 18:02:07 · 684 阅读 · 0 评论 -
基于RTT对STM32L431进行OTA(上)
之前自己写过一个bootloader,参考的正点原子,实际就是IAP,不是真正意义OTA,只是有个按键,按下后进入IAP程序,开始通过433模块接收数据,存储到指定flash区域,因为程序集成了MPU9250的MPL库,达到100多k,所以不是先存再搬,没有划分两块区域(F103内存不够),直接接收达一页数据,就存到APP区,然后全部存完跳转重启运行;能擦一页存一页有时间,是因为受433模块限制不能一次发大量数据,bin文件要分包,自己写的分包发包工具(有需要私信,发包间隙、大小可调),每帧之间有间隙时..原创 2020-08-02 11:29:30 · 1020 阅读 · 1 评论