- 博客(56)
- 收藏
- 关注
原创 Flash Timeout.Reset Target and try it again
enable 应该对应的是 level 1(flash 连接保护)disable 应该对应的是 level 0(无保护)
2025-03-13 11:12:09
166
原创 RS485 RS232 Modbus UART IIC SPI【半双工/全双工】
RS485的典型应用是半双工,即同一时间只能传输单向数据。如果需要全双工通信,RS485也可以通过使用两对差分信号线来支持。是一种可用于半双工或全双工通信的串行通信协议,具体取决于配置和应用场景。默认情况下,USART通常是全双工的,即可以同时发送和接收数据。在某些情况下,USART可以配置为半双工模式,这种模式适用于只能在某一时刻进行单向传输的应用。RS232通常是全双工的通信协议,但它也可以在某些情况下用于半双工通信,取决于具体的应用和设备配置。I2C是半双工。
2024-12-26 16:57:43
1328
原创 【错误】未解决 expected a type specifier
就是打印一个printf 前面还可以 然后不知道为什么报这个错误 上午遇到的 然后重新建了个工程没有这问题 下午重新点开这个工程 编译过后 也是没有报错 太神奇了 中间有重启一次电脑 不知道有没有关系。
2024-12-11 16:51:36
433
原创 HAL_UART_RxCpltCallback 和 HAL_UART_RxHalfCpltCallback 区别
HAL_UART_RxCpltCallback 和 HAL_UART_RxHalfCpltCallback 都是 STM32 HAL 库中与 UART 接收中断相关的回调函数,它们用于处理接收数据的不同阶段,但它们的触发时机和应用场景有所不同。
2024-12-11 16:45:54
828
原创 ESP32_CAM 使用arduino IDE 【如何加入平台】
在附加开发板管理器中添加网址:https://dl.espressif.com/dl/package_esp32_index.json。方法一.打开arduino,在最上方的选项中选择。
2024-12-06 09:23:45
309
原创 【FreeRTOS学习】填充 0xa5 是为什么
为新任务的堆栈分配内存,并将其初始化为0xa5,目的是帮助调试和确保堆栈区域的正确性。通过memset函数,系统会将新任务的堆栈区域的每个字节填充为0xa5,并确保堆栈的总字节数是根据任务的深度和堆栈元素的大小来计算的。希望这样解释能帮你更好地理解这段代码!如果还有疑问,随时告诉我!
2024-11-14 16:25:05
674
原创 解读《ARM Cortex-M3 与Cortex-M4 权威指南》——第4章 架构
推荐大佬做的讲解 可以帮助加深理解Cortex-M3 和 Cortex-M4 处理器都是基于ARMv7-M架构需要完成对编程模型、异常(如中断)如何处理、存储器映射、如何使用外设以及如何使用微控制器供应商提供的软件驱动库文件等。
2024-11-14 11:27:35
1342
原创 解读《ARM Cortex-M3 与Cortex-M4 权威指南》——第3章 技术综述
Thumb 是 ARM ISA 的一个扩展,目的是在需要节省内存和提高代码密度的应用中,提供更高效的指令集。D-CODE 总线主要负责处理器内部和内存之间的数据传输,而系统总线则协调各个模块之间的通信,传输地址、数据和控制信号。它们都是 ARM 处理器的一部分,具有相同的底层硬件支持。**系统总线:**是更广泛的总线系统,涉及 地址、数据 和 控制信号 的传输,确保整个系统中各个组件的协调工作。**D-CODE 总线:**专注于传输 数据,包括从内存读取数据或向内存写入数据,或与外设的数据交互。
2024-11-05 10:55:58
1231
原创 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
775
原创 如何检测串口线已经断开
特性硬件流控制软件流控制实现方式使用 RTS/CTS 信号线使用控制字符(如 XON/XOFF)延迟较低,反应速度快较高,可能导致延迟额外线路需求需要额外的线路和引脚无需额外线路数据传输影响不会影响数据传输控制字符占用数据位复杂性需要更复杂的硬件设计实现简单,适合软件控制适用场景高速或高负载场景数据流量较小或不频繁的场景通过以上方法,开发板能够有效地判断串口线是否断开,并相应地进行处理。选择合适的方法取决于具体的应用需求和硬件设计。
2024-10-21 11:04:13
1542
原创 小米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
502
原创 解读《ARM Cortex-M3 与Cortex-M4 权威指南》——第2章 嵌入式软件开发简介
使用开源工具链进行嵌入式开发时,尽管没有传统的IDE,依然可以通过Makefile和脚本实现高效的编译和调试流程。这种方法提供了灵活性和可定制性,适合于对开发环境有特殊需求的项目。
2024-10-16 15:47:03
1314
原创 解读《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
1086
原创 大疆电机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
1297
原创 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
549
原创 eeprom使用 cubemx STM32F407ZGT6【IIC驱动AT24C02】
ROM(只读存储器)、RAM(随机存取存储器)、Flash(闪存)、和EEPROM(电可擦可编程只读存储器)是四种不同类型的存储介质。ROM用于存储固件或永久数据,不易更改。RAM用于临时存储数据,读写速度快,但断电后数据丢失。Flash是一种可电擦写的存储器,按照块写入,常用于存储大量数据,如固态硬盘中的数据。EEPROM是一种可以逐字节擦写的存储器,适用于需要少量修改的存储需求。它们之间的关系是,它们都用于数据存储,但在持久性、速度和修改能力上各有不同。引用大佬的文章EEPROM和flash的区别。
2024-09-11 16:56:43
487
原创 超声波 HC-SR04 的使用 CubeMx + STM32F103C8T6 【含两个】
HC-SR04 是一种常用的超声波测距模块。它通过发射超声波并测量这些波反射回来的时间来计算距离。模块的基本结构包括一个超声波发射器和一个接收器。发射器发出高频超声波,当这些波遇到物体后反射回来,接收器接收到这些反射波。根据超声波的传播时间和声速,模块可以计算出到物体的距离。它通常用于测距、避障等应用中。用的是这两款 第二款功能更多 不贴电阻 和上面这款没差别VCC–5V/3.3v【网上有看到一定得是5v 根据自己使用的模块来】GND–GND。
2024-09-11 11:31:07
924
原创 git add . 警告
这些警告是因为 Git 检测到你的文件使用了不同的换行符(LF 或 CRLF),并提示在下次 Git 操作中将会统一换行符为 CRLF。这通常发生在跨平台协作时,例如在 Windows 环境下编辑的文件可能使用 CRLF,而在类 Unix 环境(比如 Linux 或 macOS)下编辑的文件使用 LF。Git 在提交文件时会自动转换换行符以符合当前环境的配置,这样可以确保文件在不同操作系统间的兼容性。在你的情况下,警告表明 Git 将要替换 LF 换行符为 CRLF 换行符。
2024-08-05 15:22:55
613
原创 关于一些时常搞混的知识点
例如,一个 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
1263
原创 配置stm32H723VGT6的FDCAN的波特率
这里我fdcan的频率是120Mhz 开了12分频 Can Tq = 0.1us=100ns。起因我需要使用一路fdcan 对外围电路驱动。这个参数不是随便调整出250kbps就行。满足 TSEG1>TSEG2>SJW。我的外围设备使用的扩展ID。数据都在cubemx里面。输出为250kbps。
2024-04-26 09:32:33
692
Huaduino-A 开发板资料
2024-11-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人