logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

028、硬件抽象层设计:如何编写可移植的GPIOUARTI2CSPI驱动层

凌晨三点,客户现场。一块基于STM32F4的板子,跑着从F1平台移植过来的代码。GPIO翻转正常,UART能打印,但I2C挂载的温湿度传感器死活读不到数据。示波器挂上去,SCL波形正常,SDA在第九个时钟周期后直接拉低——典型的从机NACK。查了两小时,发现I2C时序的延时参数是硬编码的,F1的HAL库延时和F4差了整整一个数量级。更讽刺的是,这个延时函数写在driver层的某个.c文件里,被三个

文章图片
#单片机#嵌入式硬件#stm32 +2
022、SPI驱动开发:软件模拟SPI与硬件SPI外设实现(以STM32为例)

本文分享了STM32 SPI驱动开发经验,重点对比了软件模拟SPI和硬件SPI的实现方法。作者通过一个工业传感器采集板的实际案例(STM32F407与ADS1256通信问题)引出主题,指出硬件SPI的NSS引脚时序问题导致通信失败,而软件模拟SPI成功解决。文章详细讲解了软件模拟SPI的实现要点,包括GPIO位操作、精确时序控制和不同SPI模式适配,并提供了完整代码示例。硬件SPI部分则强调寄存器

文章图片
#驱动开发#stm32#嵌入式硬件 +3
020、SPI基础:四线制同步通信、主从模式、时钟极性与相位详解

文章摘要: 本文从作者调试SPI通信的实战经历切入,系统解析了SPI协议的核心要点。重点阐述了四线制(SCLK/MOSI/MISO/CS)的功能与常见接线问题,强调主从架构中时钟由主设备主导的特性。深入剖析了CPOL(时钟极性)和CPHA(时钟相位)的四种组合模式及其配置方法,指出这是SPI最易出错的环节。通过STM32代码示例,展示了SPI初始化和收发数据的正确实践,并总结了多从设备管理、时钟频

文章图片
#单片机#驱动开发#嵌入式硬件 +2
004、GPIO输出实战:点亮LED、控制继电器、驱动蜂鸣器(STM32与Arduino双平台)

GPIO输出实战要点总结 电流计算是关键:所有GPIO输出前必须计算负载电流,STM32单个IO限25mA,Arduino限40mA(建议20mA内)。超限需加驱动电路(三极管/MOS管/ULN2003)。 模式选择:推挽输出适用于LED/继电器等;开漏输出需外接上拉电阻。继电器驱动必须加续流二极管(1N4007)防反压。 典型电路: LED:串联限流电阻(3.3V用150Ω,5V用220Ω) 继

文章图片
#stm32#单片机#嵌入式硬件
002、硬件接口基础:电平标准、推挽与开漏、上拉下拉电阻详解

凌晨三点,示波器屏幕上跳动的波形让我头皮发麻。一块新做的板子,STM32F4的I2C总线死活拉不低,从设备偶尔响应偶尔装死。换芯片、换电阻、甚至怀疑PCB走线有问题,折腾了两个小时。最后发现——我把开漏输出当成了推挽输出在用,上拉电阻选了个10kΩ,总线电容一叠加,上升沿直接变成45度斜坡。这种坑,我相信每个做嵌入式的兄弟都踩过。今天就把这些基础但要命的东西掰开揉碎讲清楚。

文章图片
#单片机#嵌入式硬件
到底了