最近在做一个项目,是与他人合作编程,使用的是ucos系统,自己只能另外建立一个工程,因为各种原因需要将串口1重映射,而在映射过程中遇到了只能烧录一次的问题。
具体现象是:
自己在没有将代码整合之前使用自建ucos工程实验,串口1使用DMA接收和发送,对寄存器直接配置,本身没有问题,各方面正常运行。但是当代码整合之后出现了SWG下载只能下载一次,无法仿真。二次下载只能长安reset。
网上查找原因,知道是可能是在串口重映射的时候出现的问题。
因为我是使用寄存器赋值的。
AFIO->MAPR|=0x00000004;
可能是这句代码的问题,所以就重新使用库函数里面的串口重映射代码,问题解决。
GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);
具体寄存器操作的失败原因还在探究。