Car12
嵌入式开发,爱好者
展开
-
N32的位带操作
gpio位带操作原创 2025-01-17 20:14:23 · 57 阅读 · 0 评论 -
N32L40x基于串口的IAP升级升级速度2Mbps+上位机工具
/这里的0x50000就是bootloader使用的空间,APP分布于bootloader之后的空间。0xaa,0xaa 数据id2个字节(高位,低位),数据错误代码(1个字节), 数据*N 0xaa,0xaa。0xaa,0xaa 数据ID 2个字节(高位,低位) 数据*N 0xaa,0xaa ,异或检验。bootloader给他分配了20K=0x50000;这里实际使用了7K多。APP下发数据包结构;累计 2+2+N+2+1 个字节,此文件不需要修改,作为lib使用。在main函数入口添加。原创 2024-09-30 15:16:31 · 603 阅读 · 0 评论 -
基于N32L40x+w25q16+sfud nor flash开源库移植
此时,只要在定义 Flash 设备时,指定好 Flash 参数,之后再调用。原创 2024-07-04 17:18:14 · 166 阅读 · 0 评论 -
flash均衡磨损--实时保存设备数据
【代码】flash均衡磨损--实时保存设备数据。原创 2024-05-23 14:31:17 · 325 阅读 · 1 评论 -
flash均衡磨损--循环存储--固定大小
flash均衡磨损--循环存储--固定大小原创 2024-05-23 13:32:19 · 616 阅读 · 0 评论 -
N32L40x基于串口IAP实现(含升级工具)
2个核心的bootloader函数。原创 2024-03-10 17:35:59 · 514 阅读 · 0 评论 -
【RTT驱动框架分析07】- adc驱动框架分析+adc中断唤醒adc驱动
实现了adc注册功能,在注册函数内部初始化io口,时钟,adc使能标定实现了adc的单通道采集功能即 convert 函数实现使能函数没有做什么工作,仅仅做了个通道的有效性判定。原创 2023-08-15 22:44:05 · 519 阅读 · 0 评论 -
【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 · 433 阅读 · 0 评论 -
【N32L40X】学习笔记14-在RT-thread系统中读取eeprom数据
编写eeprom测试源码。原创 2023-08-06 19:21:51 · 881 阅读 · 0 评论 -
【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 · 597 阅读 · 0 评论 -
【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 · 382 阅读 · 0 评论 -
【RTT驱动框架分析04】-I2C驱动框架分析 at24cxx
和 SPI 总线的自定义传输接口一样,I2C 总线的自定义传输接口传输的数据也是以一个消息为单位。参数 msgs[] 指向待传输的消息数组,用户可以自定义每条消息的内容,实现 I2C 总线所支持的 2 种不同的数据传输模式。在使用 I2C 总线设备前需要根据 I2C 总线设备名称获取设备句柄,进而才可以操作 I2C 总线设备,查找设备函数如下所示,以下两个读写函数封装自 rt_i2c_transfer() 函数,用于读写I2C从设备的数据,更加简单易用,推荐使用。获取到 I2C 总线设备句柄就可以使用。原创 2023-08-02 22:03:57 · 515 阅读 · 0 评论 -
【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 · 401 阅读 · 0 评论 -
【RTT驱动框架分析02】-串口驱动分析
0x00000001。原创 2023-07-29 17:15:20 · 385 阅读 · 0 评论 -
【RTT驱动框架分析01】-pin/gpio驱动分析
绑定的实质就是给pin_irq_hdr_tab 内部的对象成员赋值操作。在rtconfig.h中可能涉及需要开启gpio时钟。内部实质就是设置中断分组和中断的触发模式中断优先级。主要是存储用户注册中断处理函数。原创 2023-07-29 17:12:31 · 353 阅读 · 0 评论 -
【N32L40X】学习笔记11-ADC规则通道采集+dma数据传输
当 ADC 转换的值高于模拟看门狗的高阈值或低于模拟看门狗的低阈值时,如果 ADC_CTRL1.AWDGIEN 已配置,则模拟看门狗标志 (ADC_STS.AWDG) 将 被 置 为 1 , 此 时 会 产 生 中 断。就是讲一个规则组转换完成后,又进行下一轮转换,注入组不支持扫描模式。连续采集就是采集这个规则组或注入组。规则组:每次触发后转换 n 个通道。扫描模式就是一轮接着一轮的扫描,注入组:每次触发后转换 1个通道。单次采集就是每次采集一个通道。原创 2023-07-22 09:27:28 · 954 阅读 · 0 评论 -
【N32L40X】学习笔记12-规则组+注入组+外部触发启动
使用定时器触发规则通道开始采集数据,采集完成后使用dma传输数据,并启动注入通道转换数据,注入通道转换完成后产生中断,中断中读物注入通道数据。原创 2023-07-29 17:06:47 · 345 阅读 · 0 评论 -
【N32L40X】学习笔记10-外部触发方式计数
也就是外部时钟源模式2此模式由 TIMx_SMCTRL .EXCEN 选择等于 1。计数器可以在外部触发输入 ETR 的每个上升沿或下降沿计数。原创 2023-07-22 09:27:15 · 680 阅读 · 0 评论 -
【N32L40X】学习笔记09-使用TIM2通道1或TIM5的通道2进行计数
外部计数模式只可以使用通道1和通道2,通道3通道4不可以用作外部计数模式。原创 2023-07-22 09:27:04 · 443 阅读 · 0 评论 -
【N32L40X】学习笔记08-定时器的基本定时功能-超时功能
【代码】【N32L40X】学习笔记08-定时器的基本定时功能-超时功能。原创 2023-07-22 09:26:35 · 731 阅读 · 0 评论 -
【N32L40X】学习笔记07-片上flash
片上flash操作需要时钟初始化,这里和其他的芯片不一样。原创 2023-07-22 09:26:20 · 315 阅读 · 0 评论 -
【N32L40X】学习笔记06-串口dma空闲中断+dma接收数据
8 个可独立配置的 DMA 通道。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VchCudlf-1689952378831)(./picture/dma.png)]原创 2023-07-22 09:25:48 · 834 阅读 · 1 评论 -
【N32L40X】学习笔记05-串口库(空闲中断+接收非空中断)
【代码】【N32L40X】学习笔记05-串口库(空闲中断+接收非空中断)原创 2023-07-22 09:25:28 · 530 阅读 · 0 评论 -
【N32L40X】学习笔记04-gpio中断库
在 NVIC 中由寄存器 NVIC_IPR0-NVIC_IPR59 共 60 个寄存器控制中断优先级,每个寄存器的每 8 位又分为一组,可以分 4 组,所以就有了 240 组宽度为 8bit 的中断优先级控制寄存器,原则上每个外部中断可配置的优先级为 0~255,通过这个表,我们就可以清楚的看到组 0~4 对应的配置关系,例如优先级分组设置为 3,那么此时所有的 82 个中断,每个中断的中断优先寄存器的高四位中的最高 3 位是抢占优先级,低 1 位是响应优先级。每个位对应的中断和 ISER 是一样的。原创 2023-07-22 09:25:14 · 768 阅读 · 0 评论 -
【N32L40X】学习笔记03-gpio输出库
【代码】【N32L40X】学习笔记03-gpio输出库。原创 2023-07-22 09:25:01 · 527 阅读 · 0 评论 -
【N32L40X】学习笔记02-gpio输入实例
【代码】【N32L40X】学习笔记02-gpio输入实例。原创 2023-07-22 09:24:44 · 1355 阅读 · 0 评论 -
【N32L40X】学习笔记01-GPIO复用和外设gpio模式设置参考
复位期间和刚复位后,复用功能未开启,I/O 端口被配置成模拟模式。原创 2023-07-21 23:00:28 · 458 阅读 · 0 评论