本帖最后由 mars4zhu 于 2014-11-6 09:31 编辑
ST的函数库非常出名, 特别是F1、F2、F4系列的Stdperipheral Library,
然而现在ST主要推行的是STM32Cube系列,其库函数为Firmware Library(固件库),采用STM32CubeMX图形化界面可以构建出引脚、外设、USB/TCP等中间件的初始化等,然后用户可以调用固件库完成应用程序开发。
不过我对于一个新的芯片,一般都是先从寄存器版本开始看,因此就找了很久,找到了STML0系列的寄存器版本库:
STM32SnippetsL0 Example Code snippets covering STM32 L0 serie
下载地址为
http://www.st.com/web/catalog/to ... 743/LN1898/PF260788
其实不叫做库,应该叫做寄存器定义头文件,下载的文件包中,主要的就是
STM32L0xx_Snippets_Package_V1.0.0\Drivers\CMSIS\Device\ST\STM32L0xx\Include
目录下的头文件,里面定义的是所有的外设、flash、寄存器等地址。
然后应用程序就可以采用如下方式直接读写寄存器了:
- __INLINE void ConfigureGPIO(void)
- {
- /* (1) Enable the peripheral clock of GPIOA and GPIOB */
- /* (2) Select output mode (01) on GPIOA pin 5 */
- /* (3) Select output mode (01) on GPIOB pin 4 */
- RCC->IOPENR |= RCC_IOPENR_GPIOAEN | RCC_IOPENR_GPIOBEN; /* (1) */
- GPIOA->MODER = (GPIOA->MODER & ~(GPIO_MODER_MODE5))
- | (GPIO_MODER_MODE5_0); /* (2) */
- GPIOB->MODER = (GPIOB->MODER & ~(GPIO_MODER_MODE4))
- | (GPIO_MODER_MODE4_0); /* (3) */
- }
复制代码
里面也有好几个demo例程,覆盖了大部分的外设,基本上可以复制粘贴使用。我的这次试用也基本上是基于这些demo。
调试中可以在Keil里面直接观察寄存器: