| 02初始化UART1 从官网上下载MM32F013x例程,里面有UART普通模式的配置,主要是增加了UART->GCR的TX_TOG和RX_TOG位设置,如下:
 
 void uart_nvic_init(u32 bound)
 {
 GPIO_InitTypeDef GPIO_InitStructure;
 UART_InitTypeDef UART_InitStructure;
 NVIC_InitTypeDef NVIC_InitStructure;
 
 RCC_APB2PeriphclockCmd(RCC_APB2Periph_UART1, ENABLE);
 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
 
 GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_1);
 GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_1);
 
 //UART1 NVIC
 NVIC_InitStructure.NVIC_IRQChannel = UART1_IRQn;
 NVIC_InitStructure.NVIC_IRQChannelPriority = 3;
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);
 
 //Baud rate
 UART_Structinit(&UART_InitStructure);
 UART_InitStructure.BaudRate = bound;
 //The word length is in 8-bit data format.
 UART_InitStructure.WordLength = UART_WordLength_8b;
 UART_InitStructure.StopBits = UART_StopBits_1;
 //No even check bit.
 UART_InitStructure.Parity = UART_Parity_No;
 //No hardware data flow control.
 UART_InitStructure.HWFlowControl = UART_HWFlowControl_None;
 UART_InitStructure.Mode = UART_Mode_Rx | UART_Mode_Tx;
 
 UART_Init(UART1, &UART_InitStructure);
 
 UART_ITConfig(UART1,UART_IT_RXIEN,ENABLE);
 
 UART1->GCR |= UART_GCR_TXTOG; //发送取反位
 UART1->GCR |= UART_GCR_RXTOG; //接收取反位
 
 UART_Cmd(UART1, ENABLE);
 
 //UART1_TX   GPIOA.9
 GPIO_StructInit(&GPIO_InitStructure);
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
 GPIO_Init(GPIOA, &GPIO_InitStructure);
 
 //UART1_RX    GPIOA.10
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_FLOATING;
 GPIO_Init(GPIOA, &GPIO_InitStructure);
 }
 
 |