TA的每日心情 | 衰 2017-11-27 16:33 |
---|
签到天数: 7 天 连续签到: 1 天 [LV.3]偶尔看看II
|
- #include "uart.h"
- void UART_Init(uint32_t usart,uint64_t baud)
- {
- if(usart == USART0)
- {
- /* enable GPIO clock */
- rcu_periph_clock_enable(RCU_USART0);
- /* enable USART clock */
- rcu_periph_clock_enable(RCU_GPIOA);
- /* connect port to USARTx_Tx */
- gpio_af_set(GPIOA, GPIO_AF_7, GPIO_PIN_9);
- /* connect port to USARTx_Rx */
- gpio_af_set(GPIOA, GPIO_AF_7, GPIO_PIN_10);
- /* configure USART Tx as alternate function push-pull */
- gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_PULLUP,GPIO_PIN_9);
- gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_10);
- /* configure USART Rx as alternate function push-pull */
- gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_PULLUP,GPIO_PIN_9);
- gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_10);
- }
- else if(usart == USART1)
- {
- /* enable GPIO clock */
- rcu_periph_clock_enable(RCU_USART1);
- /* enable USART clock */
- rcu_periph_clock_enable(RCU_GPIOD);
- /* connect port to USARTx_Tx */
- gpio_af_set(GPIOD, GPIO_AF_7, GPIO_PIN_5);
- /* connect port to USARTx_Rx */
- gpio_af_set(GPIOD, GPIO_AF_7, GPIO_PIN_6);
- /* configure USART Tx as alternate function push-pull */
- gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_PULLUP,GPIO_PIN_5);
- gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_6);
- /* configure USART Rx as alternate function push-pull */
- gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_PULLUP,GPIO_PIN_5);
- gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_6);
- }
- else if(usart == USART2)
- {
- /* enable GPIO clock */
- rcu_periph_clock_enable(RCU_USART2);
- /* enable USART clock */
- rcu_periph_clock_enable(RCU_GPIOD);
- /* connect port to USARTx_Tx */
- gpio_af_set(GPIOD, GPIO_AF_7, GPIO_PIN_8);
- /* connect port to USARTx_Rx */
- gpio_af_set(GPIOD, GPIO_AF_7, GPIO_PIN_9);
- /* configure USART Tx as alternate function push-pull */
- gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_PULLUP,GPIO_PIN_8);
- gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_9);
- /* configure USART Rx as alternate function push-pull */
- gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_PULLUP,GPIO_PIN_8);
- gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_9);
- }
- /* USART configure */
- usart_deinit(usart);
- usart_baudrate_set(usart,baud);
- usart_receive_config(usart, USART_RECEIVE_ENABLE);
- usart_transmit_config(usart, USART_TRANSMIT_ENABLE);
- usart_enable(usart);
- }
- int fputc(int ch, FILE *f)
- {
- while(usart_flag_get(Debug_UART,USART_FLAG_TBE)==0);
- usart_data_transmit(Debug_UART,ch);
- return ch;
- }
复制代码
- #ifndef UART_H
- #define UART_H
- #include "gd32f4xx_usart.h"
- #include <stdio.h>
- #define Debug_UART USART1
- void UART_Init(uint32_t usart,uint64_t baud);
- #endif
复制代码 按照这种思路 所有的串口都能一句话调用配置 简单方便
最后上传一个GD32F450的数据手册 ,主要刚开始找了半天没找到 好不容易在一个论坛里找到了
GD32F450xx_Datasheet_Rev1.1.pdf
(1.32 MB, 下载次数: 8)
|
|