32位单片机

服务热线:0755-27883824

「国产32位单片机」32位单片机外设的配置

2019-06-11 16:05:25   责任编辑:     0

  在做STM32开发应用的过程中,常常会遇到这样那样的问题,其中相当部分问题是与各外设及相关GPIO的配置有关的。就这方面的问题,这里一起总结交流下。



  目前的STM32芯片是基于ARM内核的可编程微处理器,我们可以简单地把内核以外的东西统称为外设,比方 TIMER、 UART、SPI、USB、I2C、存储器等功能模块。以32F427芯片功能框图为例,那些红圈上的都是。


  围绕外设的配置,我们遇到的问题,大致可以分为两大类。


  一、时钟问题,就这方面的问题又可以细分为几小点。


  1.1 时钟没打开就使用。


  这个不难理解,就是相关外设的时钟没有打开。比如UART5的时钟没有打开,SPI的时钟没打开等,自然操作不了或没反应。


  1.2 时钟因为总线的判断错误而开错了时钟。


  这个之前经常有人发生。比如类似USART1与USART2、SP1与SP2、TIM1与TIM2可能并不在同一总线上,配置时以为一样,结果出了问题。


  1.3 时钟数率配置错误。


  这点跟第2点似乎有些交叉,这里主要是指因为时钟数据配置错误导致供给外设的时钟过高导致异常。曾经就有人因给32F1系列芯片的USB配置时钟时因高于48M,使其性能极不稳定而抓狂。


  1.4 复用时钟没打开,即AFIO时钟没打开。


  前面三点都没问题,配置正确无误,有些功能必须打开复用时钟,结果不知或忘记打开。说AFIO时钟主要是针对STM32F1系列的芯片。


  二、GPIO管脚物理安排及配置问题,这个也可以细分两类。


  2.1 管脚复用时出现了竞争冲突,即某个或某几个管脚同时分配给了2个外设来使用。


  工程师在使用STM32F103V的芯片时,同时用到两个I2C,结果发现总是I2C2工作正常,而I2C1工作不正常。时钟、脚位本身配置都没有问题。后来,发现他启用了相关FSMC的功能,其中FSMC有个功能脚刚好与I2C1的SDA 脚冲突了。


  2.2 需要重映射的脚位没进行REMAP操作。


  对于STM32F1系列需要重映射的功能脚,数据手册里会在REMAP栏标注出来。


  在处理STM32 MCU的管脚安排、时钟配置方面非常方便,可以回避很多因为管脚或时钟理解上的误会、视觉上的疏忽而导致的困扰和麻烦,建议尽量使用该工具做辅助开发。



本文来源于网络


电话

0755-27883824

地址:深圳市宝安区西乡街道银田创意园B8栋502

传真:0755-61204158

邮箱 : 13510937553@163.com