- 博客(41)
- 收藏
- 关注
原创 stm32驱动W2812
W2812 内置有控制电路和 RGB LED 灯珠,用户只需通过一条数据线进行控制每一个LED的R、G、B分别由八位数据控制颜色浓度,(每种颜色浓度有0~255档,理论上RGB就可以组成256的3次方中颜色组合)即每个LED需要24BIT数据,那么需要发送数据的总长度则为(要控制LED数量 n)*(24),每个LED保存24BIT将剩余位传给后面LED。全部数据发送完成后要继续发送大于24us的低电平作为RESET_CODE等才可以点亮。引用大佬文章。
2024-10-21 14:08:26 433
原创 如何检测串口线已经断开
特性硬件流控制软件流控制实现方式使用 RTS/CTS 信号线使用控制字符(如 XON/XOFF)延迟较低,反应速度快较高,可能导致延迟额外线路需求需要额外的线路和引脚无需额外线路数据传输影响不会影响数据传输控制字符占用数据位复杂性需要更复杂的硬件设计实现简单,适合软件控制适用场景高速或高负载场景数据流量较小或不频繁的场景通过以上方法,开发板能够有效地判断串口线是否断开,并相应地进行处理。选择合适的方法取决于具体的应用需求和硬件设计。
2024-10-21 11:04:13 1040
原创 小米CyberGear微电机 软件修改CAN_ID 注意事项
brief 设置电机CAN_ID(通信类型7)更改当前电机CAN_ID , 立即生效,@param[in] Target_ID 想要改成的电机ID。@param[in] Now_ID 电机现在的ID。@param[in] hmotor 电机结构体。
2024-10-18 11:43:34 179
原创 解读《ARM Cortex-M3 与Cortex-M4 权威指南》——第2章 嵌入式软件开发简介
使用开源工具链进行嵌入式开发时,尽管没有传统的IDE,依然可以通过Makefile和脚本实现高效的编译和调试流程。这种方法提供了灵活性和可定制性,适合于对开发环境有特殊需求的项目。
2024-10-16 15:47:03 966
原创 解读《ARM Cortex-M3 与Cortex-M4 权威指南》——第1章 ARM Cortex-M处理器简介
Cortex-M3处理器可以执行一些数字信号处理(DSP)相关的任务,但它并不具备专门为DSP设计的指令集和硬件加速功能。具体来说,Cortex-M3支持基本的定点运算和一些简单的数学操作,但缺少Cortex-M4所提供的SIMD(单指令多数据)、快速乘法累加(MAC)和饱和运算等专用指令。因此,虽然Cortex-M3能够进行一些基本的数字信号处理,但在性能和效率上不如Cortex-M4。对于需要复杂数字信号处理的应用,Cortex-M4更为合适,因为它的设计更能满足这些需求。
2024-10-12 14:08:15 938
原创 大疆电机M3508 PWM控制
然后这个占比就是 __HAL_TIM_SET_COMPARE 的第三个参数 除以ARR 就是1999+1。如 我使用的是TIM2 在F4芯片上 TIM2挂载在APH1上 APH1的时钟是84Mhz。如果不是1500 可以试试500 观察电调是否没有闪烁黄灯 正常闪烁绿灯ID。当使用PWM控制方式的时候 有两种模式 单向模式和正反转模式。以及需要将C620电调上面的120欧姆电阻 调整到off挡。然后注意好 该电机 在1000~2000 内有效。正常就可以再主函数while 循环内写入。
2024-10-11 14:18:36 353
原创 STM32F407ZGT6驱动sd卡+文件夹 并写入多组实时数据 基于cubemx生成
SD卡,全称Secure Digital卡,是一种常见的便携式存储设备,通常用于存储和传输数据。它是一种闪存存储卡。TF卡(TransFlash卡) 又称MicroSD卡,MicroSD卡比SD卡小,通常只有SD卡的1/4大小。在使用sd卡时候 十分推荐 以下我的文章会基于大佬的代码 再加上自己需求的代码STM32CubeMX教程28 SDIO - 使用FatFs文件系统读写SD卡对sd卡的sdio方式驱动十分清晰当我需要删除文件夹目录内的内容/*删除文件夹*/
2024-09-20 16:53:26 353
原创 eeprom使用 cubemx STM32F407ZGT6【IIC驱动AT24C02】
ROM(只读存储器)、RAM(随机存取存储器)、Flash(闪存)、和EEPROM(电可擦可编程只读存储器)是四种不同类型的存储介质。ROM用于存储固件或永久数据,不易更改。RAM用于临时存储数据,读写速度快,但断电后数据丢失。Flash是一种可电擦写的存储器,按照块写入,常用于存储大量数据,如固态硬盘中的数据。EEPROM是一种可以逐字节擦写的存储器,适用于需要少量修改的存储需求。它们之间的关系是,它们都用于数据存储,但在持久性、速度和修改能力上各有不同。引用大佬的文章EEPROM和flash的区别。
2024-09-11 16:56:43 333
原创 超声波 HC-SR04 的使用 CubeMx + STM32F103C8T6 【含两个】
HC-SR04 是一种常用的超声波测距模块。它通过发射超声波并测量这些波反射回来的时间来计算距离。模块的基本结构包括一个超声波发射器和一个接收器。发射器发出高频超声波,当这些波遇到物体后反射回来,接收器接收到这些反射波。根据超声波的传播时间和声速,模块可以计算出到物体的距离。它通常用于测距、避障等应用中。用的是这两款 第二款功能更多 不贴电阻 和上面这款没差别VCC–5V/3.3v【网上有看到一定得是5v 根据自己使用的模块来】GND–GND。
2024-09-11 11:31:07 689
原创 git add . 警告
这些警告是因为 Git 检测到你的文件使用了不同的换行符(LF 或 CRLF),并提示在下次 Git 操作中将会统一换行符为 CRLF。这通常发生在跨平台协作时,例如在 Windows 环境下编辑的文件可能使用 CRLF,而在类 Unix 环境(比如 Linux 或 macOS)下编辑的文件使用 LF。Git 在提交文件时会自动转换换行符以符合当前环境的配置,这样可以确保文件在不同操作系统间的兼容性。在你的情况下,警告表明 Git 将要替换 LF 换行符为 CRLF 换行符。
2024-08-05 15:22:55 448
原创 关于一些时常搞混的知识点
例如,一个 uint8_t 类型的变量存储一个十六进制数值时,占用一个字节(8 比特),而一个 uint16_t 类型的变量则占用两个字节(16 比特)。如果是 uint32_t 类型,它是一个无符号 32 位整数,0xFFFF 将只占用其中的低 16 位,但仍然占用四个字节(32 比特)的存储空间,高 16 位则为零。如果是 uint16_t 类型,它是一个无符号 16 位整数,正好可以存储 0xFFFF,因为它占用两个字节(16 比特)的存储空间。移动过程中,左边的位数会丢弃,右边的空位用 0 填充。
2024-07-19 14:50:17 697
原创 配置stm32H723VGT6的FDCAN的波特率
这里我fdcan的频率是120Mhz 开了12分频 Can Tq = 0.1us=100ns。起因我需要使用一路fdcan 对外围电路驱动。这个参数不是随便调整出250kbps就行。满足 TSEG1>TSEG2>SJW。我的外围设备使用的扩展ID。数据都在cubemx里面。输出为250kbps。
2024-04-26 09:32:33 437
原创 stm32f10xx中断
中断通常把CPU内部产生的紧急事件叫做异常,比如非法指令(除零)、地址访问越界等;把来自CPU外部的片上外设产生的紧急事件叫做中断,比如GPIO引脚电平变化、定时器溢出等。异常和中断的效果基本一致,都是暂停当前任务,优先执行紧急事件。因此一般将中断和异常统称为中断。
2024-03-30 19:57:59 242 1
原创 GPIO配置
复用 例如当PA9 PA10 默认为TX1 RX1 如果只是想用其当作普通IO口的话 将其的模式改为复用。1、浮空输入:既不上拉 也不下拉 外界电路是什么情况就是什么情况。5、推挽输出【PP】只是单向输出高低电平的时候是设置该模式。【引用】http://t.csdnimg.cn/gKQAP。6、开漏输出【OD】当模拟IIC SDA 设置为该模式。2、带上拉输入:读IO口状态默认为高。3、带下拉输入:读IO口状态默认为低。#库函数版本 写led、key。
2024-03-24 16:36:43 246 1
原创 stm32的启动
stm32从CPU上电复位执行第一条指令开始,到进入c程序main()函数入口之间。第一种 平常用JTAC和SWD下载方式 【STM32内置Flash】PC指针:Reset_Handler 用来指向当前运行指令的下一条。在Reset_Handler中调用 SystemInit。SP指针:SP=_initial_sp。第二种 通过串口烧写hex文件下载。第三种 用于程序的调试。
2024-03-21 15:43:32 237 1
原创 C语言笔试题
2),前者只是把10强转为short,又由于式子中存在浮点数,所以会对结果值进行一个自动类型的提升,浮点数默认为double,所以答案是double;,指向的类型是一样的, 并且p+1和a+1都是移动4个整型(int)大小的字节,都是16。)p + 7) 是(int*)p指针加7先移动到c[1][3]这个地方的地址,然后再解引用,得到c[1][3]的元素。int (*p)[5]表示数组指针,表示一个指向数组的指针(创建了指向长度为5类型为int型的指针)2,而不是(short) (10/10.2。
2024-03-16 11:34:47 407 1
原创 stm32f103c8t6使用定时器实现1s翻转LED+cubemx生成
其中TIMxCLK为时钟频率,TIM_Period(arr)自动重装载值,TIM_Prescaler(PSC)为时钟预分频系数。对于stm32f103c8t6时钟频率为72MHZ。【若开启了定时器中断 0.01s进入回调函数一次】总结:回调函数时间很短,不能在回调函数中写延时。当 index_led=1时满足1s定时。在main.c中添加。
2024-03-01 21:58:40 1312 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人