stm32架构初认识

   刚接触stm32f373c8t6的芯片,这到底是怎末开发的,应该说它是SOC,内部有一个核心芯片,然后在芯片的外部添加了一些有特殊功能的外设,使开发者能够完成想要的功能,以stm32f373c

8t6为例,它与别的芯片不同之处便是它有3个16位分辨率的ADC,称之为SDADC。

   刚学stm32时,一头雾水,这芯片内部到底是怎末构成的,每个外设是怎末为它提供电源的,这些都一无所知。以stm32f373为例,它有三个可以作为系统时钟的来源,HSI,HSE,以及由PLL得到的时钟源,AHB,APB上挂接的是外设,AHB上一般挂接的都是高性能的外设,而APB一般挂接的都是对速度要求不太高的外设,APB又分为APB1,APB2。GPIO是挂接在AHB上的,这些信息一般在systemxx.h文件中能够看到,或者直接看新派你手册。

   以usart为例,要想实现这个串口的功能,首先,你板卡上的外设管脚接到芯片的管脚上,之后为GPIO设置相应的功能,然后使usart与GPIO相连,这样usart与外设之间就建立了通信的渠道,然后给GPIO和USART分别通上电,再使能一下,将打开的相对应的那个寄存器的相应位置1,那么便可以工作了。

   以sdadc为例,要实现adc转换的功能,首先,板卡上的外设管脚连接到芯片的管脚上,之后为gpio设置相应的功能,然后使sdadc与gpio相连,这样sdadc与外设之间就建立了通信的渠道,然后给sdadc和gpio分别上电,再使能一下,将打开的相对应的那个寄存器的相应位置1,就能工作。至于怎末工作的流程线,基本是这样的,以电位器为例,采集电压用LCD来显示,一个电位器外设接到芯片的管脚上,经过GPIO,再经过sdadc,经过adc转换后的数据存储在一个寄存器中,然后将这个寄存器的值读到LCD上显示出来就可以了。

   

猜你喜欢

转载自www.cnblogs.com/zzm1/p/9689453.html