diff --git a/app/stm32fxxx_app/prj/BCU_APP.uvprojx b/app/stm32fxxx_app/prj/BCU_APP.uvprojx index 7490605..c987676 100644 --- a/app/stm32fxxx_app/prj/BCU_APP.uvprojx +++ b/app/stm32fxxx_app/prj/BCU_APP.uvprojx @@ -10,15 +10,15 @@ stm32f407 0x4 ARM-ADS - 5050106::V5.05 update 1 (build 106)::ARMCC - 5050106::V5.05 update 1 (build 106)::ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC + 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 STM32F407ZGTx STMicroelectronics - Keil.STM32F4xx_DFP.2.16.0 - http://www.keil.com/pack/ + Keil.STM32F4xx_DFP.3.0.0 + https://www.keil.com/pack/ IRAM(0x20000000,0x00020000) IRAM2(0x10000000,0x00010000) IROM(0x08000000,0x00100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE @@ -187,7 +187,6 @@ 2 0 0 - 0 1 0 8 @@ -1068,8 +1067,8 @@ STM32F407VGTx STMicroelectronics - Keil.STM32F4xx_DFP.2.16.0 - http://www.keil.com/pack/ + Keil.STM32F4xx_DFP.3.0.0 + https://www.keil.com/pack/ IRAM(0x20000000,0x00020000) IRAM2(0x10000000,0x00010000) IROM(0x08000000,0x00100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE @@ -1238,7 +1237,6 @@ 2 0 0 - 0 1 0 8 diff --git a/library/drv_peripheral/drv_qfc41d.c b/library/drv_peripheral/drv_qfc41d.c index dc30223..8f92bae 100644 --- a/library/drv_peripheral/drv_qfc41d.c +++ b/library/drv_peripheral/drv_qfc41d.c @@ -188,7 +188,8 @@ uint8_t drv_qfc41d_init(void) { //初始化串口 drv_uart_init((UartDev)qfc41dItem.dev, 115200, 0 | UART_CFG_STOP_BIT_1, kGpioType_WIRELESSUart_Tx, kGpioType_WIRELESSUart_Rx); - + + USART2->CR1 = USART_CR1_TE | USART_CR1_RE | USART_CR1_RXNEIE | USART_CR1_UE; //设置接收回调函数 drv_uart_set_interrupt(QFC41D_UART_PORT, kUartInterrupt_Rx, APP_CFG_INT_PRIO_UART2_RX, drv_qf41d_uart_rx_it_call);//#define SIM_UART_PORT kUartDev_2 diff --git a/library/drv_stm32f4xx/drv_uart.c b/library/drv_stm32f4xx/drv_uart.c index f4270fa..ea1c3d6 100644 --- a/library/drv_stm32f4xx/drv_uart.c +++ b/library/drv_stm32f4xx/drv_uart.c @@ -150,6 +150,7 @@ static kit_ret_e drv_uart_set_clock_gpio(UartDev dev, uint16_t tx_idx, uint16_t case kUartDev_2: RCC->APB1ENR |= RCC_APB1Periph_USART2; + RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; // 浣胯兘GPIOA鏃堕挓 if((tx_io == GPIO_PORT_PIN(kGpioPort_A, 2)) && (rx_io == GPIO_PORT_PIN(kGpioPort_A, 3))) { drv_gpio_set_af(kGpioPort_A, 2, 7); @@ -298,6 +299,7 @@ kit_ret_e drv_uart_init(UartDev dev, uint32_t baudrate, uint32_t uart_config, u reg->BRR = stm32_uart[dev].base_baudrate / (baudrate / 2400); //浣胯兘鏀躲佸彂鍜寀art tmp = USER_CR1_UE | USART_Mode_Rx | USART_Mode_Tx; + tmp = USART_CR1_TE | USART_CR1_RE | USART_CR1_RXNEIE; //璁剧疆鏁版嵁闀垮害 tmp |= (uart_config & 0x0001) << 12; //璁剧疆鏍¢獙 @@ -410,6 +412,7 @@ static void uart_irq_handler(UartDev dev) item->call[kUartInterrupt_Rx](kKit_Ret_Ok, &data); } } + //鍙戦佷腑鏂洖璋 else if((reg->SR & USER_SR1_TCIE) != 0) { //娓呴櫎鏍囧織浣