
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
我最近在写stm32单片机的程序,在写的过程中发现自己编写函数名、类型名、宏定义的时候自己编写的代码总是有点别扭,主要原因就是这些元素的命名上有问题,我查阅了uboot、linux内核源码、以及我以前同事编写的代码,积累了这些代码中命名的一些共性,现在记录下来。后面如果发现有新共性,继续补充。(2)枚举类型定义的。
最近,我在使用stm32cubeMX这个软件配置单片机stm32生成模板源文件,但是我发现了一个问题就是,我在源码中增加了自己的一些代码,并且使用了中文注释,但是只要stm32cubeMX重新生成源码,中文注释就变成乱码了,无论是在keil MDK环境,还是在VSCODE IDE中都是一样的,无法通过修改编码方式将乱码还原回中文。方法二:添加系统变量,这种方法我没有尝试,第一种方法已经成功了,但是
我使用stm32cubeMX软件生成stm32单片机源码程序,我在源码程序中添加一个自定义的文件夹“Hardware”里面存储着一些外设或者板子上模块的驱动程序的源文件和头文件,并且在keil MDK的魔术棒中将“Hardware”的相对路径包含到c/c++的头文件中,使用stm32cubeMX重新生成源码后,新增的文件夹和头文件路径都丢失了。操作:在你的 Keil 工程目录下的 MDK-ARM
本文总结了STM32开发中遇到的芯片变砖和程序卡死的两个问题及解决方法。首先由于未配置SWD接口导致芯片无法识别,通过外接10K上拉电阻连接J-Link的RESET引脚解决了烧录问题。其次发现Keil MDK工程卡在启动文件首行代码,通过启用MicroLib库解决了该问题,而IAR工程因默认配置正常运行。最终发现根本原因:一是CubeMX未配置SWD接口,二是Keil未启用MicroLib(可能与
我可能说的不清楚,我在这里想表达的是数据结构是一种人类对实物特性的描述,可以用自然语言描述出来,大家理解他为一种概念,一种名词,一种形而上学的东西即可。最近在学习C语言编写的单片机程序,想到了以前上学的时候的一句名言“程序=数据结构+算法”,我现在对这句话有了一些自己的想法,记录下来希望对大家有所帮助,如果大家有不同意见,希望指出来,反驳我。算法是一种抽象的概念。函数是根据算法的内容使用计算机编程
最近,我在写stm32单片机程序,发现stm32的HAL库中写的代码有很多省略写法,我这里说的省略写法不是指HAL库中烧了什么函数的意思,毕竟HAL库的代码水平还是很高的,有很多值得我们学习的地方。我说的省略写法是指在函数内部有些临时栈变量用于接收某个函数的返回值,或者某个中间变量,在编写代码过程中省略了,今天要讨论的是这种省略临时栈变量或者中间变量的写法,什么时候是可以省略的,什么情况是不能省略
VLA(variable length array)可变长度数组之所以在编译阶段(keil MDK直接提示错误)报错就是因此,数组长度在代码运行阶段是由可能导致变动,就算是最初定义了一个初始值,也无法保证在代码运行是不会修改该变量的值,该变量的值如果发生变动,全局数组长度也应该发生变动,这就影响了这个可执行文件的内存布局分布,这是不允许的。运行阶段就是申请2次栈内存,就算函数write_flash
文章摘要:本文探讨了在STM32模块化编程中条件判断结构的选择问题。作者分析了两种主要条件判断方式的适用场景:1) if-elseif-else结构适用于条件互斥的情况(可能多次判断但只执行一个分支);2) 多个独立if结构适用于条件无关联的情况(必定执行全部判断且可能触发多个分支)。文章强调应根据参数条件是否互斥来选择判断结构,并指出两种方式不可混用。最后总结了if语句执行的必然性和else语句
VSCode升级至1.133.0版本后,远程连接功能报错。尝试关闭自动更新回退版本或修改product.json文件均未解决。最终在GitHub社区发现是SSH-Remote插件预发布版本的问题,将其切换为正式发布版本后成功修复远程连接功能。
刚开始,我以为是主题的原因,换了好几种vscode自带主题,都无法解决问题,后来我终于找到原因了:打开头文件后,vscode识别头文件为c++文件,任务栏右下角。因此只需要将识别错误的c++改成“自动检测”,就解决了。而打开的源文件就不存在这样的问题。







