完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
对于STM32芯片,其GPIO输出可以根据不同的应用需求而灵活选择不同档次的输出速率。一般分为低、中、高或者很高几个档次,具体速率视不同的STM32芯片而定。 不妨以STM32F407为例,它分四个输出档次,具体的数值范围参考芯片数据手册的I/O的交流特性部分。 这个输出速率主要体现I/O驱动电路的输出反应能力,通过选择不同的输出驱动速率,实现最佳的噪声与和功耗控制。不难理解,选择输出驱动速率越高,噪声也越大,相应的芯片功耗也会越大。所以对于这个输出频率的选择,不要太随意,合适就好。在满足应用的需求的前提下,就不要随意往高端速率选择。 这里说几个简单的应用案例,以加深印象和理解。 1、LED闪烁快慢不一致 某客户使用STM32F4芯片做产品开发,其中用到 while( count++ > 0xffffff) 做软件delay,然后让LED闪烁。相关代码甚为简单,却发现产品的一致性不好,LED 闪烁有的快有的慢。 反复排查代码原因,未发现程序逻辑错误。后来尝试将LED 驱动脚的Output Speed设置从very high调整为 low 后一切正常。 2、Audio 噪声 某客户使用STM32芯片做产品开发。其中有I2S的音频播放功能。客户在调试时用到Printf串口打印,发现使用printf输出时会出现噪音,如果关闭printf则正常。 后来,反复查看代码,直到将UART的TX输出端口的管脚输出速率由very high改为Low后噪声消失。 3、SPI通信异常 有人使用STM32芯片开发产品,其中用到SPI通信。STM32做主,其它外围器件做从,有时发现SPI读取数据总是出错。 对于这里的通信出错,如果SPI通信端口脚的输出速率选择跟实际通信速率不合适的话也会出现。相比实际速率需求,过高或过低了都会导致通信出错。 好,抛砖引玉似地罗列上面几个案例。这里顺便聊下跟GPIO输出速率有关的I/O补偿单元。 目前STM32家族的9大系列里面,其中高性能的STM32F2/STM32F4/STM32F7系列的芯片,都带有GPIO补偿单元。 |
|
相关推荐
4 个讨论
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
2136 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1970 浏览 3 评论
4566 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2116 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2629 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 21:58 , Processed in 0.502115 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号