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引脚。
  • 10-06 04:10