问答

汇集网友智慧,解决技术难题

poyzb

TA的家园币:15  

  • GD32F103RCT6移植FreeRTOS,配置串口2的NVIC系统直接死机

    staticrcu_periph_enumUART_GPIO_CLK={RCU_GPIOA,RCU_GPIOA,RCU_GPIOB,RCU_GPIOC};staticrcu_periph_enumUART_CLK={RCU_USART0,RCU_USART1,RCU_USART2,RCU_UART3};staticuint32_tUART_GPIO_PORT={GPIOA,GPIOA,GPIOB,GPIOC};staticuint32_tUART_TX_PIN={GPIO_PIN_9,GPIO_PIN_2,GPIO_PIN_10,GPIO_PIN_10};staticuint32_tUART_RX_PIN={GPIO_PIN_10,GPIO_PIN_3,GPIO_PIN_11,GPIO_PIN_11};staticuint8_tUART_NVIC={USART0_IRQn,USART1_IRQn,USART2_IRQn,UART3_IRQn,UART4_IRQn};staticuint8_tUART_PRE_PRIORITY={2,4,3,5,6};串口初始化调用//USART_Init(USART1,115200);//USART_Init(USART0,115200);USART_Init(USART2,115200);//USART_Init(UART3,115200);//USART_Init(UART4,115200);串口初始化函数voidUSART_Init(uint32_tcom,uint32_tbaud){USART_Config(com,baud);}voidUSART_Config(uint32_tcom,uint32_tbaud){uint32_tcom_id=0U;if(com==USART0)com_id=0U;elseif(com==USART1)com_id=1U;elseif(com==USART2)com_id=2U;elseif(com==UART3)com_id=3U;elseif(com==UART4)com_id=4U;/*configureCOM*/if(com_id==4U){rcu_periph_clock_enable(RCU_GPIOC);rcu_periph_clock_enable(RCU_GPIOD);rcu_periph_clock_enable(RCU_UART4);gpio_init(GPIOC,GPIO_MODE_AF_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_12);gpio_init(GPIOD,GPIO_MODE_IN_FLOATING,GPIO_OSPEED_50MHZ,GPIO_PIN_2);}else{rcu_periph_clock_enable(UART_GPIO_CLK[com_id]);rcu_periph_clock_enable(UART_CLK[com_id]);gpio_init(UART_GPIO_PORT[com_id],GPIO_MODE_AF_PP,GPIO_OSPEED_50MHZ,UART_TX_PIN[com_id]);gpio_init(UART_GPIO_PORT[com_id],GPIO_MODE_IN_FLOATING,GPIO_OSPEED_50MHZ,UART_RX_PIN[com_id]);}usart_deinit(com);usart_baudrate_set(com,baud);usart_word_length_set(com,USART_WL_8BIT);usart_stop_bit_set(com,USART_STB_1BIT);usart_parity_conf