C中不允许使用类型名称

我正在尝试通过STM32F407将ADC与DMA一起使用。我想将ADCValue的内存地址设置为DMA流x内存0地址寄存器。但是我得到这个错误:

type name is not allowed 

此部分位于main

unsigned short ADCValue[1];
DMA2_Stream0->M0AR= uint32_t(&ADCValue);

和寄存器的定义

  __IO uint32_t M0AR;   /*!< DMA stream x memory 0 address register   */
wangkai5260929 回答:C中不允许使用类型名称

您的投放方式错误。应该是:

DMA2_Stream0->M0AR = (uint32_t)&ADCValue;

但是由于它是一个数组,所以&也不是必需的。使用这种方式时,数组将自动衰减为指针。这样就可以了:

DMA2_Stream0->M0AR = (uint32_t)ADCValue;
,

要么:

unsigned short ADCValue ;
DMA2_Stream0->M0AR= (uint32_t)&ADCValue ;

unsigned short ADCValue[1] ;
DMA2_Stream0->M0AR= (uint32_t)ADCValue ;

uint32_t(&ADCValue)uint32_t(ADCValue)在C ++中有效,但在C中无效。

本文链接:https://www.f2er.com/3093764.html

大家都在问