我亲自进行了STM32CubeMX 6.5.0的实测,遇到过低电平触发PA0引脚的情况,踩到过freeRTOS任务栈溢出致使重启的坑,新手通过跟着步骤一步步去操作,便能够轻松躲开这类常见……
我亲自进行了STM32CubeMX 6.5.0的实测,遇到过低电平触发PA0引脚的情况,踩到过freeRTOS任务栈溢出致使重启的坑,新手通过跟着步骤一步步去操作,便能够轻松躲开这类常见问题。
身为一名常年穿梭于实验室与工厂之间的电子工程师,我深切明白技能提升并非是看几本图书、听几堂课就能够达成的,它必定要深深扎根于具体的实操项目之中。从一开始画原理图时手会颤抖,到能够独自完成一个带有无线通信功能的嵌入式产品,踩过的每一程坎坷之路都是最为有效的教程。单纯的软件操作你也许能够凭看视频去模仿,然而硬件电路的调试、系统层面的架构认知,非得在真实的项目环境里经受历练才行。
电子工程师如何掌握嵌入式C语言开发
进行嵌入式开发时,C语言是难以避开的一道关卡。不少人认为C语言颇具难度,实际上无非是指针以及内存管理这两个阻碍因素。我的提议为始于手册驱动开发方式。并非一开始就只顾埋头编写代码,而是要打开你打算使用的芯片参考手册以及数据手册,寻找到特定的外设章节,像定时器TIM这类。看着手册的寄存器说明,借助STM32CubeMX生成代码框架,随后对照寄存器地址和函数去领会每一行起始代码所具有的作用。若你能够明确无误地讲出,在STM32代码之中名为“系统时钟SysTick_Handler”确切是哪一个文件,以及是哪一个变量,那么你对于C语言的理解便跨越了第一关。
【新手避坑】
新手依据手册敲代码有种易蹈”鬼打墙“错误之倾向:编译不存在问题,然而下载至板子内却无法正常运作。这大概率是时钟配置出现差错。就好比GPIO外设得备有相应的总线时钟,STM32的GPIO挂载于AHB或者APB总线上,在运用HAL_GPIO_Init之前,务必要先调用__HAL_RCC_GPIOx_CLK_ENABLE()来开启对应端口的时钟。得形成一种习惯,这种习惯是在MX_GPIO_Init 函数当中,针对检查时钟使能语句去养成的。
电子工程师如何学习PCB布线实战技巧
理论方面曾学过“高速信号优先布线”以及“电源要加粗”,然而在实际去进行绘图作业期间,却照旧显得手忙脚乱。其核心的问题所在是欠缺那种带有约束规则的实战环境。需严格去执行 1+2 布线法:当拿到 PCB 之后,第一步是要用至少 30%的时间为Top 层和 Bottom 层的核心主通路展开全局规划,像 MCU 到 DDR 的地址线、数据线组这种。首先是第二步,当开始进行布线这个操作的时候,要去按住CTRL键,接着再使用软件(就像Altium Designer那样的软件)所具备的选择过滤器,通过一次性框选的模式选取出一组需要进行等长处理的网络,然后把它们一同进行拖拽,还要一起拐弯处理,借助如上这般的操作可以达成最大程度上保持走线的平行状态以及间距一致性的目的,而不是一根一根地单独去拉每一根线。
【新手避坑】
新手进行布线操作时,常常会碰到DRC(也就是设计规则检查)出现报错提示为“Clearance Constraint”,这种情况通常并非是线绘制失误所导致的,而是设计规则没有设置正确这一缘故。在开展布线工作之前,务必要进入“Design -> Rules”这个菜单选项,于“Electrical”以下所属的“Clearance”当中,把最小间距(Minimum Clearance)依据板厂工艺能力来进行设置,譬如设置为6mil。与此同时,于“Routing”的“Width”当中,把电源线(像VCC)的线宽规则设定成20至30mil,把信号线设定成6至8mil,规则设置妥当之后再进行布线,可省去80%的后期修改。
电子工程师如何调试复杂的硬件电路
被硬件工程师视作眼睛的,是示波器、万用表以及逻辑分析仪。调试并非随意进行测量,反而是有着一定章法可循的信号链追踪方式。若以调试一个SPI通信失败这种情况作为例子,那么第一步就是,使用示波器对MCU的SCK(也就是时钟)以及MOSI(即主出从入)引脚同时展开测量,以此去确认主机发出的波形以及时序是否正确。要是波形呈现正常状态,进入第二步,针对从设备进行测量,像那个Flash芯片,测量其片选CS引脚这一处,以确认它是不是被正确地拉低了。接着迈入第三步,倘若片选处于正常的情况,然而数据依旧没有回应,就要测量从设备的电源VCC,借助万用表去检查其上电之后的电压是不是稳定的,与此同时,务必要重点专注波形的纹波情况,运用示波器的AC耦合档对此展开观察。
【新手避坑】
最具调试难度的是那种呈现出时而良好时而不佳状态的通信方面的问题,这极有可能是由于阻抗未能匹配从而引发的信号反射现象,对于平常普遍的低速的I2C要增添2.2K的上拉电阻,对于速度相对较高的SPI(像是10MHz以上的那种),在距离MCU输出端较近的位置串联起一个22至33欧姆的电阻等,能够切实对信号质量起到改善作用,起到抑制过冲的效果,在进行调试期间要是发觉信号上升沿存在明显的振铃情形,便能够尝试采用这种方法。
上述方法,是对走纯软件路径的嵌入式新手来说的。要是你工作在超低功耗、电池供电超1年的物联网节点领域,那这种从底层寄存器开始抠细节的路径是必要的。然而,要是你所在公司采用成熟的模块化方案,像乐鑫ESP32只用AT指令就能开发,那么系统的稳定性是由原厂保障的,你的重心应转向“业务逻辑实现”,方案的高效整合以及云端对接才是更为重要的技能。
微信扫一扫
还没有评论呢,快来抢沙发~