CMSIS文件和外围设备驱动程序文件中写入了什么类型的代码。我该如何区分它们?任何例子都会更有帮助。谢谢你。
最佳答案
“CMSIS”是Cortex Microcontroller Software Interface Standard。这是ARM标准,因此代码在Cortex实现之间应该或多或少具有可移植性。
外围设备库通常更特定于供应商,因为对于两个不同的供应商如何实现例如没有标准。计时器或UART模块。
至少,这是我(主要)与STM32系列中的ARM一起工作的基本理解。但是,我在CMSIS页面上注意到CMSIS的范围实际上更大:
这听起来像是要做我与特定于供应商的代码相关联的事情,但也许并非所有供应商实际上都在使用CMSIS驱动程序。
更新:在我使用的STM32:s上,仅使用ST的外围设备库管理GPIO。
这很简单,真的:
RCC_AHB1PeriphClockCmd()
启用GPIO外设的时钟。有很多时钟,因此请确保您做对了。我认为所有的GPIO都在AHB1上。 GPIO_InitTypeDef
以获取默认值来初始化GPIO_StructInit()
类型的变量。 GPIO_InitTypeDef
中设置您真正想要的设置,根据需要覆盖默认设置。 GPIO_Init()
,并使用您的实际设置将GPIO_InitTypeDef
传递给它。这将在外设中戳寄存器。 GPIO_SetBits()
,GPIO_ReadInputDataBit()
等调用来实际使用GPIO引脚。