我用的是STM32F103C8T6,HAL库中设置SPI2的DMA模式,初始化设置的是打开存储器地址增量模式MINC位=1,但在程序中要不停重复写入0x00,想把MINC位置零,用*( unsigned int * )(DMA1_BASE + 0x08 + 20*4) &= ~(1<<7);直接修改寄存器,结果发现这段代码放在SPI第一次传送之前,修改有效,一旦DMA传送一次后,用它修改MINC就无效了。 请问各位大神,这是怎么回事,看手册也没有找到MINC修改时必须满足什么条件。 |
有些寄存器的修改跟外设的状态有关,要改地址的增量模式,需要disable dma才可以