-
AT32F403ARGT6 串口1管脚映射到PB6和PB7后无法输出消息 sos
最近设计了一块基于AT32F403ARGT6的板卡,由于PA9和PA10做了其他用途,所以将串口1做了管脚映射,但映射到PB6和PB7后无法输出消息。配置是按照官方提供的IO复用配置方法进行操作的,如链接中关于串口I复用配置所示。 AN0096_AT32F435_437_GPIO_Application_Note_ZH_V2.0.0.pdf (arterytek.com) 目前采用的是官方例程中的usart printf,仅针对IO复用时钟开启,开启串口1的IO复用,串口引脚和时钟做了修改。 ###NextPage[title=实际代码]### [size=3]void uart_print_init(uint32_t baudrate)[/size] [size=3]{[/size] [size=3] gpio_init_type gpio_init_struct;[/size] [size=3] [/size] [size=3]#if defined (__GNUC__) && !defined (__clang__)[/size] [size=3] setvbuf(stdout, NULL, _IONBF, 0);[/size] [size=3]#endif[/size] [size=3] [/size] [size=3] /* enable the uart and gpio clock */[/size] [size=3] crm_periph_clock_enable(PRINT_UART_CRM_CLK, TRUE);[/size] [size=3] crm_periph_clock_enable(PRINT_UART_TX_GPIO_CRM_CLK, TRUE);[/size] [size=3] crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE);[/size] [size=3] gpio_default_para_init(&gpio_init_struct);[/size] [size=3] [/size] [size=3] [/size] [size=3] /* configure the uart tx pin */[/size] [size=3] gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;[/size] [size=3] gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;[/size] [size=3] gpio_init_struct.gpio_mode = GPIO_MODE_MUX;[/size] [size=3] gpio_init_struct.gpio_pins = PRINT_UART_TX_PIN;[/size] [size=3] gpio_init_struct.gpio_pull = GPIO_PULL_NONE;[/size] [size=3] gpio_init(PRINT_UART_TX_GPIO, &gpio_init_struct);[/size] [size=3] gpio_pin_remap_config(USART1_GMUX_0001, TRUE); [/size] [size=3] /* configure uart param */[/size] [size=3] usart_init(PRINT_UART, baudrate, USART_DATA_8BITS, USART_STOP_1_BIT);[/size] [size=3] usart_transmitter_enable(PRINT_UART, TRUE);[/size] [size=3] usart_enable(PRINT_UART, TRUE);[/size] [size=3]}[/size] 大家有这样用过的吗。
1118浏览量 0回复量 关注量