我的还没调试出来,先写写要注意的部分:
1.地址问题 STM32F051采用的是Cortex M0内核。在寄存器上与现在使用较多的Cortex M3内核的芯片还有点区别。在这里用到的应该是串口的数据寄存器。在CM3的片子中就是 一个DR。而在Coretx M0的片子中将发送和接收数据寄存器分开了。一个事TDR 一个RDR。在配置DMA时需要将TDR的地址配置为外设地址,如果是DMA串口发送的话
2.可以用DMA_GetCurrDataCounter 这个函数去查看DMA缓存中还有多少未发送的数据
3串口映射的问题,串口的 DMA发送可以映射到DMA1的通道2 或者通道4上,设置就在SYSCFG 寄存器中。SYFCFG_CFGR1中的USART1_TX_DMA_RMP为0的话 映射到通道2上。如果为1 则映射到通道4上。