- 博客(477)
- 资源 (46)
- 收藏
- 关注
原创 stm32f103RCT 使用ssd1306 IIC 接口 移植lkdGUI
ldkGUI关于lkdGUI的信息参考:https://blog.csdn.net/qq_23274715/article/details/80959804已经移植好的程序源码和测试代码:https://gitee.com/chejia12/lkd-gui移植ldkGUI参考官方给的参考文档手把手教你移植创建stm32f103rct6 mdk工程添加OLED驱动添加OLED sd1306库函数,添加OLED分组添加驱动源文件,添加驱动头文件,字体文件参考:https://blo
2021-11-26 19:00:05 1175
原创 沁恒CH32V30X学习笔记11---使用外部时钟模式2采集脉冲计数
使用外部触发模式 2 能在外部时钟引脚输入的每一个上升沿或下降沿计数。将 ECE 位置位时,将使用外部时钟源模式 2。使用外部时钟源模式 2 时,ETRF 被选定为 CK_PSC。ETR 引脚经过可选的(ETPS)后成为 ETRP,再经过(ETF)后即成为 ETRF。在 ECE 位置位且将 SMS 设为 111b 时,那么,相当于 TS 选择 ETRF 为输入。
2024-02-19 22:34:43 203
原创 沁恒CH32V30X学习笔记10---pwm输出
PWM 输出模式是定时器的基本功能之一。PWM 输出模式最常见的是,使用捕获。将 OCxM 域中置 110b 或者 111b 使用,置 OCxPE 位,最后置 ARPE 位使能预装载寄存器的。在发生一个更新事件时,预装载寄存器的值才能被送到影子寄存器,所以在核心计数器开始计数之前,需要置 UG 位来初始化所有寄存器。在 PWM 模式下,核心计数器和比较捕获寄存器一直在进行比较,根据 CMS 位,定时器能够输出边沿对齐或者中央对齐的 PWM 信号。
2024-02-19 21:43:54 207
原创 沁恒CH32V30X学习笔记09---使用TIM 外部时钟1模式实现硬件计数
定时器时钟通过框图可知;外部时钟1模式下仅仅只有通道1 和通道2 可以输入脉冲。
2024-02-19 19:46:05 126
原创 沁恒CH32V30X学习笔记08---基本定时器超时功能
模块包含一个功能强大的 16 位自动重装定时器(TIM1、TIM8、TIM9 和 TIM10)模块包含一个 16 位可自动重装的定时器(TIM2、TIM3、TIM4 和 TIM5)模块包含一个 16 位可自动重装的定时器(TIM6 和 TIM7)
2024-02-19 13:54:57 133
原创 沁恒CH32V30X学习笔记07---多功能按键框架使用
MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步处理方式可以简化你的程序结构,去除冗余的按键处理硬编码,让你的按键业务逻辑更清晰。
2024-02-19 12:08:05 98
原创 沁恒CH32V30X学习笔记06---串口dma接收+空闲中断组合接收数据
沁恒CH32V30X学习笔记06---串口dma接收+空闲中断组合接收数据
2024-02-18 19:58:21 203
原创 沁恒CH32V30X学习笔记00--芯片概述
3 组通用同步/异步串口收发器(USART1、USART2、USART3),以及 5 组通用异步收发器(UART4、UART5、UART6、UART7、UART8)。USB2.0 高速控制器具有主机控制器和设备控制器双重角色,内置 480Mbps 的 USB-PHY 物理层收发。产品内置 2 个 12 位电压输出数字/模拟转换器(DAC),转换 2 路数字信号为 2 路模拟电压信号并。内置 2 个 12 位的模拟/数字转换器(ADC),共用多达 16 个外部通道和 2 个内部通道采样。
2024-02-18 19:49:20 250
原创 沁恒CH32V30X学习笔记04--外部中断
CH32V2x 和 CH32V3x 系列内置可编程快速中断控制器(PFIC– Programmable Fast Interrupt Controller),最多支持 255 个中断向量。当前系88个外设中断,每个中断请求都有独立的,有专用的可编程多级,最大嵌套深度8级,硬件压栈深度3级特有快速中断进出机制,硬件自动压栈和恢复,无需指令开销特有免表VTF(Vector Table Free)中断响应机制,使用步骤:1) 配置 GPIO 操作;CH32FV2x_V3x 应用手册。
2024-02-18 19:40:09 286
原创 沁恒CH32V30X学习笔记03--64位systick
Cortex-M3 内核自带了一个 24 位自减型计数器(SysTick timer)。支持 HCLK 或 HCLK/8 作为时基,具有较高优先级别(6)。一般可用于操作系统的时基。内核自带了一个,具有较高优先级,校准后可用于时间基准这是一个坑,编译器优化了tick变量。
2024-02-18 19:36:42 212
原创 沁恒CH32V30X学习笔记02--GPIO的使用教程及2次封装驱动
刚复位后,GPIO 口运行在初始状态,这时大多数 IO 口都是运行在状态所有的 GPIO 口都可以被配置外部中断输入通道,但一个外部中断输入通道最多只能映射到一个GPIO 引脚上,且外部中断通道的序号必须和 GPIO 端口的位号一致,,两方都是一对一的关系。复用功能。
2024-02-18 19:32:15 278
原创 基于gd32f103移植freemodbus master 主栈
1.移植freemodbus master需要先移植RT-Thread操作系统2.移植freemodbus master协议栈在移植了RTT以后,我们需要移植就只有串口相关的函数移植freemodbus master协议栈具体步骤。
2024-01-18 13:51:20 277
原创 基于GD32F103使用串口不同的中断实现freemodbus移植
中断 还是需要修改mbfunccoils.c,mbfuncdisc.c,mbfuncholding.c,mbfuncinput.c文件;中断中断需要手动发送一次数据,即需要修改mbrtu.c文件的eMBRTUSend()函数。不需要修改修改mbrtu.c文件的eMBRTUSend()函数。使用串口不同的中断实现freemodbus移植。需要修改串口使能接口函数。需要修改串口中断函数。
2024-01-16 21:12:15 77
原创 【RTT驱动框架分析07】- adc驱动框架分析+adc中断唤醒adc驱动
实现了adc注册功能,在注册函数内部初始化io口,时钟,adc使能标定实现了adc的单通道采集功能即 convert 函数实现使能函数没有做什么工作,仅仅做了个通道的有效性判定。
2023-08-15 22:44:05 363
原创 【RTT驱动框架分析06】-pwn驱动框架分析+pwm驱动实现
因为有的芯片的PWM是具有互补输出功能的,即PWM的某一个通道是可以靠两个引脚来发出一对互补的波形。PWM 的输出频率由周期时间 period 决定,例如周期时间为 0.5ms (毫秒),则 period 值为 500000ns(纳秒),输出频率为 2KHz,占空比为 pulse / period,pulse 值不能超过 period。,第一个参数为命令,第二个参数为 PWM 设备名称,第 3 个参数为 PWM 通道,第 4 个参数为周期(单位纳秒),第 5 个参数为脉冲宽度(单位纳秒)。
2023-08-10 21:55:07 355
原创 【N32L40X】学习笔记13-软件IIC读写EEPROM AT24C02
8个字节每页,累计32个页通讯频率MAX = 400KAT24C02大小 2K对于at24c02 A2A1A0 这三个引脚没有使用由于设备在写周期中不会产生ACK恢复,因此这可用于确定周期何时完成(此特性可用于最大限度地提高总线吞吐量)。一旦从主服务器发出了写命令的停止条件,设备就会启动内部定时的写周期,然后就可以立即启动ACK轮询。这涉及到主服务器发送一个开始条件,然后是一个写命令的控制字节(R/W =0)。,然后主命令可以继续下一个读或写命令。该操作的流程图见图5-1。
2023-08-05 22:58:51 477
原创 【RTT驱动框架分析05】-spi驱动框架分析
获取到 SPI 设备句柄就可以使用 SPI 设备管理接口访问 SPI 设备器件,进行数据收发。参数描述deviceSPI 设备句柄message消息指针返回——RT_NULL成功发送非空指针发送失败,返回指向剩余未发送的 message 的指针此函数可以传输一连串消息,用户可以自定义每个待传输的 message 结构体各参数的数值,从而可以很方便的控制数据传输方式。/* 发送缓冲区指针 */ void * recv_buf;/* 接收缓冲区指针 */ rt_size_t length;
2023-08-02 22:24:18 278
原创 RTT应用编程_iic应用编程
和 SPI 总线的自定义传输接口一样,I2C 总线的自定义传输接口传输的数据也是以一个消息为单位。参数 msgs[] 指向待传输的消息数组,用户可以自定义每条消息的内容,实现 I2C 总线所支持的 2 种不同的数据传输模式。在使用 I2C 总线设备前需要根据 I2C 总线设备名称获取设备句柄,进而才可以操作 I2C 总线设备,查找设备函数如下所示,以下两个读写函数封装自 rt_i2c_transfer() 函数,用于读写I2C从设备的数据,更加简单易用,推荐使用。获取到 I2C 总线设备句柄就可以使用。
2023-08-02 22:06:46 330
原创 【RTT驱动框架分析04】-I2C驱动框架分析 at24cxx
和 SPI 总线的自定义传输接口一样,I2C 总线的自定义传输接口传输的数据也是以一个消息为单位。参数 msgs[] 指向待传输的消息数组,用户可以自定义每条消息的内容,实现 I2C 总线所支持的 2 种不同的数据传输模式。在使用 I2C 总线设备前需要根据 I2C 总线设备名称获取设备句柄,进而才可以操作 I2C 总线设备,查找设备函数如下所示,以下两个读写函数封装自 rt_i2c_transfer() 函数,用于读写I2C从设备的数据,更加简单易用,推荐使用。获取到 I2C 总线设备句柄就可以使用。
2023-08-02 22:03:57 355
原创 【RTT驱动框架分析03】- sfus flash 操作库的分析和基于STM32F103RCT6+CUBEMX的SFUS移植教程
sfus 是根据flash_table 数组内部提供信息初始化spi总线和初始化sfud_flash_chip (spi flash抽象结构)信息。由下面的信息可知,不同的spi flash擦除命令不一致,读写命令是一致的。修改flash设备列表和flash id。目前支持的spi flash的目标。main.c 文件添加如下内容。修改文件sfus_port.c。这里也是以后可以添加的。到此移植的基本条件满足。
2023-07-30 19:16:59 257
原创 【RTT驱动框架分析00】-应用层函数调用流程-串口为例
RTT内部有一个全局变量数组rt_object_container数组的数量就是 rt_object_info_type 内核对象的种类,其中包含一个RT_USING_DEVICE (设备的数据类型),数组内部的每一个变量包含一个链表,链表内部就构造了一个设备链表,rt_device_find函数就是在这个数组内部根据类型找到链表,然后在链表内部根据设备名字找到rt_device_t设备。
2023-07-29 17:20:29 292
原创 【RTT驱动框架分析01】-pin/gpio驱动分析
绑定的实质就是给pin_irq_hdr_tab 内部的对象成员赋值操作。在rtconfig.h中可能涉及需要开启gpio时钟。内部实质就是设置中断分组和中断的触发模式中断优先级。主要是存储用户注册中断处理函数。
2023-07-29 17:12:31 255
原创 极海APM32F4xx Tiny】学习笔记08-RTT 链表使用方法
极海APM32F4xx Tiny】学习笔记08-RTT 链表使用方法1.双向链表基本结构2.节点初始化—2个方法3.在某一个节点后边插入一个节点4.在某一个节点前边插入一个节点5.移除一个节点6.判定链表是不是空就是判定是不是自己指向自己7.获取链表长度已知结构体内部一个成员的地址can_dev,根据机构体类型struct ra_can和成员名字can_dev 得到结构体实例对象can的地址8.获取结构体的入口地址9.遍历整个链表10.已知成员的地址遍历整个链表
2023-07-29 17:07:04 242
原创 【N32L40X】学习笔记12-规则组+注入组+外部触发启动
使用定时器触发规则通道开始采集数据,采集完成后使用dma传输数据,并启动注入通道转换数据,注入通道转换完成后产生中断,中断中读物注入通道数据。
2023-07-29 17:06:47 266
原创 【N32L40X】学习笔记11-ADC规则通道采集+dma数据传输
当 ADC 转换的值高于模拟看门狗的高阈值或低于模拟看门狗的低阈值时,如果 ADC_CTRL1.AWDGIEN 已配置,则模拟看门狗标志 (ADC_STS.AWDG) 将 被 置 为 1 , 此 时 会 产 生 中 断。就是讲一个规则组转换完成后,又进行下一轮转换,注入组不支持扫描模式。连续采集就是采集这个规则组或注入组。规则组:每次触发后转换 n 个通道。扫描模式就是一轮接着一轮的扫描,注入组:每次触发后转换 1个通道。单次采集就是每次采集一个通道。
2023-07-22 09:27:28 734
原创 【N32L40X】学习笔记10-外部触发方式计数
也就是外部时钟源模式2此模式由 TIMx_SMCTRL .EXCEN 选择等于 1。计数器可以在外部触发输入 ETR 的每个上升沿或下降沿计数。
2023-07-22 09:27:15 540
【RTT驱动框架分析03】- sfus flash 操作库的分析和基于STM32F103RCT6+CUBEMX的SFUS移植教程
2023-07-30
基于国名技术N32+W5500的串口服务器实现
2022-10-01
GD32F103 IAP 升级源代码
2022-04-17
修复了野火的bug,使用cubemx初始化代码 STM32F407ZGT6.zip
2021-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人