- 博客(15)
- 收藏
- 关注
原创 c/c++程序编译的预处理过程(c/c++编译器在真正编译代码之前会进行的工作)
define用于定义宏,它本质上是一种简单的文本替换。对象式宏(Object-like Macro):定义一个常量或符号。预处理后变成:int buffer[1024];函数式宏(Function-like Macro):定义一个类似函数调用的宏。(a) : (b))预处理后变成:int result = ((x) > (y)?(x) : (y));重要陷阱:函数式宏是纯粹的文本替换,不考虑类型和作用域,容易引发意想不到的副作用(例如会导致i或j。
2025-06-23 17:04:43
930
原创 移植mavlink2到stm32f427(pixhawk2.4.8)详细教程及代码
至此,你已经完成了移植,下面只需编写mavlink应用代码即可。
2025-06-21 18:39:52
1121
原创 HMC5883L磁力计详细介绍、驱动代码(基于stm32f427)
HMC5883L 是一款基于各向异性磁阻(AMR)技术的三轴磁力计,能够测量 X、Y、Z 三个轴向的磁场强度,输出数字信号。
2025-06-09 16:04:50
1267
原创 pixhawk无法连接QGC、Mission Planner问题解决方法(地面站识别不到pixhawk对应串口)
问题的起因是之前通过stlink往pixhawk烧录过自己写的一些程序,刚一开始,虽然烧录后地面站也无法识别pixhawk串口,但只需用stlink重新给芯片刷bootloder就可以重新连接地面站,但过了一段时间又试了试,发现即使刷bootloder也无法识别,不知道咋回事,可能我在写程序的时候不小心破坏了一些固件吧,反正现在pixhawk变砖了。之后在网上收集了一些资料,发现只需按照同。将固件加载到没有现有 ArduPilot 固件的板上的方法重新烧写一遍固件即可解决。
2025-03-26 16:56:43
803
原创 GPIO开漏输出模式下keil逻辑分析仪不显示波形问题
由于开漏输出在高电平状态是高阻态(输出引脚的等效电阻非常高,对外呈现出既不是高电平也不是低电平的状态,类似于一个断开的开关),逻辑分析仪内部的输入电路可能无法正确检测到这个状态。逻辑分析仪的输入一般期望连接到具有明确电平驱动能力的信号源,而开漏输出的高阻态不符合这种要求,除非外部连接了合适的上拉电阻并且上拉到逻辑分析仪能够识别的有效电平。开漏输出模式下,输出级晶体管的漏极是开路的。当输出为高电平时,输出引脚实际上是处于高阻态,需要外部上拉电阻来将电平拉高;当输出为低电平时,输出引脚直接连接到地。
2024-12-06 13:40:21
444
原创 TortoiseGit右键菜单不显示的问题
在电脑杀毒软件中,找到TortoiseGit,将上图中的TortoiseGit右键菜单打开即可。
2024-10-28 15:56:56
1035
1
原创 TortoiseGit图标不显示的问题
最近在使用TortoiseGit时,在Git本地库中突然在不显示状态图标了,在网上查了下原因,大多数说是因为注册表中TortoiseGit排序问题,但很奇怪我注册表相关目录中并没有TortoiseGit的相关项,按照网上说的方法添加相关项后没多久项就被删除了,图标仍无法显示。
2024-10-28 12:28:54
1137
原创 内存分配方式总结
全局变量和静态变量:已初始化的全局和静态变量,存放在数据段(已初始化的全局变量和静态变量存放在data段,未初始化的存放在bss段)。在程序编译时分配内存,无需手动管理内存,分配和释放由编译器处理。
2024-10-18 22:29:47
354
原创 FreeRTOS动态创建任务函数(xTaskCreate)内部实现
任务控制块tskTCB:FreeRTOS会为每个创建的任务分配一个任务控制块,任务控制块是一个结构体变量,储存了任务状态信息。
2024-10-18 21:03:18
221
原创 编写按键检测例程时遇见的一个bug(按键检测不灵敏)
在编写按键检测例程时,遇到了这样一个bug:按键在按下时不灵敏,有时在按下按键后,对应程序并无反应。经检查,硬件并无问题,编写的按键检测函数Key_CheckPress也无问题,而且如果把主函数改为只检测一个按键是否按下按键不灵敏的问题就没了。
2024-10-17 21:16:42
317
原创 stm32基于SysTick编写delay函数。
SysTick是CM3内核中的外设,是一个24位递减的计数器,每1/SYSCLC递减一次,其中,SYSCLC是SysTick的时钟,在stm32f1系列单片机中,可以设置为72M(时钟源位HCLK)、9M(HCLC的8分频)。这里只列举几个重要寄存器,图片摘自野火stm32库开发实战指南:前面说到SysTick每1/SYSCLC递减一次是指:SysTick从重装载寄存器的RELOAD值开始每次递减1,假设SYSCLC设置位9MHZ,则SysTick每1/9M递减一次,基于此,SysTick从RELOAD递减
2024-09-08 17:03:19
711
原创 内存对齐与__align()关键字
内存对齐是指在内存中对数据进行存储的一种方式,通常是使数据的起始地址符合特定的规则存储,例如使数据的起始地址按照4字节边界对齐,即数据的起始地址可以被4字节整除。
2024-08-29 15:04:34
354
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅