我测试了你的代码,TIM5_CH1对应的DMA1_Stream2确实不能搬运GPIO的寄存器,在你的代码里加入 DMA_GetFlagStatus(DMA1_Stream2, DMA_FLAG_TEIF2); 能够检测到传输错误。
然后我换用TIM8来替代你的TIM5,TIM8_CH1对应的DMA是DMA2_Stream2,这样是可以搬运GPIO寄存器的值的,楼主你可以测试看看。
这样看来,数据手册里的那句“The DMA1 controller AHB peripheral port is not connected to the bus matrix like DMA2 controller.”意思就是说DMA1不能搬运AHB上的外设,但是DMA2可以。而STM32F103系列似乎没有这个限制。不知道我理解的对不对,召唤一下版主@香水城
|