写入寄存器 - stm32 中的命名约定

Posted

技术标签:

【中文标题】写入寄存器 - stm32 中的命名约定【英文标题】:writing to registers - naming convention in stm32 【发布时间】:2020-10-26 15:57:16 【问题描述】:

我一直在尝试在 SMT32cubeIDE 中为 STM32F0103K6 手动设置 ADC。我想我知道我需要哪些寄存器和标志,但我似乎无法写入其中任何一个,因为所有名称都是错误的 - ?我尝试在 cubeIDE 的 SFR 视图中使用名称,例如 -

 ADC ->CR |= 1<<ADEN; // enable ADC
 ADC ->ADC_SMPR |= 1<<0 | 1<<1; // speed divider select
 ADC ->ADC_CHSELR |= 1<<0 | 1<<1; // set sequence to adc0, adc1
 ADC ->ADC_CFGR1 |= 1<<DISCEN; //discontinuous mode
 ADC ->ADC_CR |= 1<<2; // start conversion

但编译器无法识别它们中的任何一个。参考手册中的名称都是一样的,只是它们有 ADC(即 ADC_CR),而且似乎也没有一个位的名称被识别。

我哪里错了?

【问题讨论】:

【参考方案1】:

这很容易。找到 CMSIS 头文件并使用正确的标识符。 通常寄存器位定义看起来像 ADC_CR1_DISCEN。

【讨论】:

在哪里可以找到 CMSIS 头文件? 应该是您(生成的?)项目源文件的一部分。尝试查找包含 ADC_CFGR1_DISCEN 或仅包含 DISCEN 的 .h 文件。

以上是关于写入寄存器 - stm32 中的命名约定的主要内容,如果未能解决你的问题,请参考以下文章

I2C 通信中的问题 - STM32(HAL 库)

STM32 串口通信基础知识

stm32串口——标志位学习

配置时无法访问STM32 DMA寄存器

STM32库函数是怎么封装底层寄存器的

STM32 DMA的使用总结