我正在尝试使用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 */
最佳答案
您的投放方式错误。它应该是:
DMA2_Stream0->M0AR = (uint32_t)&ADCValue;
但是由于它是一个数组,所以
&
也不是必需的。使用这种方式时,数组将自动衰减为指针。因此,这样做:DMA2_Stream0->M0AR = (uint32_t)ADCValue;