gpt4 book ai didi

CMSIS 和外围设备驱动程序

转载 作者:太空狗 更新时间:2023-10-29 15:32:39 27 4
gpt4 key购买 nike

CMSIS文件和外设驱动文件中写的是什么类型的代码。我怎样才能区分它们?任何例子都会更有帮助。谢谢你。

最佳答案

“CMSIS”是 Cortex Microcontroller Software Interface Standard .这是一个 ARM 标准,因此代码应该或多或少在 Cortex 实现之间具有可移植性。

外设库通常更特定于供应商,因为没有两个不同供应商将如何实现的标准,例如定时器或 UART 模块。

至少,这是我(主要)在 STM32 系列中使用 ARM 时的基本理解。但是,我注意到 CMSIS 页面上 CMSIS 的范围实际上更大:

CMSIS-Driver: defines generic peripheral driver interfaces for middleware making it reusable across supported devices. The API is RTOS independent and connects microcontroller peripherals with middleware that implements for example communication stacks, file systems, or graphic user interfaces.

这听起来像是它会做一些我认为与供应商特定代码相关联的事情,但也许并不是所有供应商实际上都使用 CMSIS 驱动程序。

更新:在我使用过的 STM32:s 上,GPIO 仅使用 ST 的外设库进行管理。

这很简单,真的:

  1. 使用 RCC_AHB1PeriphClockCmd() 启用 GPIO 外围设备的时钟。有很多时钟,所以请确保您做对了。我认为所有 GPIO 都在 AHB1 上。
  2. 通过调用 GPIO_StructInit() 来初始化类型为 GPIO_InitTypeDef 的变量以获得默认值。
  3. GPIO_InitTypeDef 中设置您真正需要的设置,根据需要覆盖默认设置。
  4. 在适当的端口上调用 GPIO_Init(),同时将 GPIO_InitTypeDef 与您的实际设置一起传递给它。这将在外围设备中插入寄存器。
  5. 使用 GPIO_SetBits()GPIO_ReadInputDataBit() 等调用来实际使用 GPIO 引脚。

关于CMSIS 和外围设备驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25681041/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com