Stm32CubeMx图形化配置工具因其简洁直观的图形化操作界面与强大的功能,极大地方便STM32用户产品开发、提升开发效率而为越来越多的人所喜爱和使用。
这里跟大家分享一个在使用该图形化配置工具做各外设功能配置时容易忽略的地方。既然说是容易忽略的地方,它意味着什么,做开发的人都懂的。开发过程中把我们折磨得半死的往往是类似这些被我们忽略的地方、或者想当然的地方。
我们知道,STM32很多外设的输出往往是跟GPIO复用的,而GPIO的输出一般都有个最大可输出速率可选择配置。我们在利用Stm32CubeMx图形化工具做配置时,往往把重点放到别的地方、别的参数了,常常却把相关GPIO的输出速率没有结合实际应用需求做手动配置,而使用CubeMx默认的配置。不过,有时默认配置可能与实际应用严重不匹配,就会给我们的应用带来异常或困扰。
比方,你使用某些STM32芯片的LTDC功能,驱动显示屏。做相关输出GPIO配置时如果使用默认配置LOW,这时你很可能没法正常驱动显示屏,即使其它硬件连接完好、其它参数配置完美。一般来讲,这时需要将相关引脚输出速率配置为HIGH或VERY HIGH.
又比方,你使用某些带以太网功能的STM32芯片,如果有关ETH_MDIO、ETH_REF_CLK这类引脚也使用默认配置Low时,往往也会遇到麻烦。这时我们需要手动配置为HIGH才能正常工作。
总之,如果我们不手动配置,采样默认配置时可能跟我们实际需求不合适而带来麻烦。这点要注意,该高时就配置高,该低时就配置为低。对于这个输出速率的配置,也并非越高越好。
有人说,这是CubeMx的bug,这样说有点牵强。毕竟GPIO的输出速率的配置是独立的,它也并不知你到底要让它跟哪个外设关联。而且,同一GPIO往往可以有多种复用功能的可选性。更何况,就某个外设而言,它的输出速率往往也是可调的。
所以整体上讲,这个地方需要我们手动自行配置为宜。平常使用Stm32CubeMx时留意这点就好,在此特做提醒。