自学GD32F450ZGT6个人笔记(串口设置)三,10.27

                       串口通讯起步设置

一,建立bsp_usart.h文件中设置

定义各个接口名称

#ifndef _BSP_USART_H
#define _BSP_USART_H
#include "gd32f4xx.h"
#include "systick.h"

#define BSP_USART_TX_RCU RCU_GPIOA
#define BSP_USART_RX_RCU RCU_GPIOA
#define BSP_USART_RCU  	 RCU_USART0

#define BSP_USART_TX_PORT GPIOA
#define BSP_USART_RX_PORT GPIOA
#define BSP_USART_AF      GPIO_AF_7
#define BSP_USART_TX_PIN  GPIO_PIN_9
#define BSP_USART_RX_PIN  GPIO_PIN_10

#define BSP_USART 				USART0




#endif

二,在bsp_usart.c文件中

#include "bsp_usart.h" 
#include "stdio.h"

void usart_gpio_config(void)
{
	//开启时钟
	rcu_periph_clock_enable(BSP_USART_TX_RCU);
	rcu_periph_clock_enable(BSP_USART_TX_RCU);
	rcu_periph_clock_enable(BSP_USART_RCU);
	
	//配置gpio复用模式
	gpio_af_set(BSP_USART_TX_PORT,BSP_USART_AF,BSP_USART_TX_PIN);
	gpio_af_set(BSP_USART_RX_PORT,BSP_USART_AF,BSP_USART_RX_PIN);
	
	//配置gpio模式
	//配置tx rx模式上拉模式
	gpio_mode_set(BSP_USART_TX_RCU,GPIO_MODE_AF,GPIO_PUPD_PULLUP,BSP_USART_TX_PIN);
	gpio_mode_set(BSP_USART_RX_RCU,GPIO_MODE_AF,GPIO_PUPD_PULLUP,BSP_USART_RX_PIN);
	
	//配置模式推挽模式
	gpio_output_options_set(BSP_USART_TX_RCU,GPIO_OTYPE_PP,GPIO_OSPEED_50MHZ,BSP_USART_TX_PIN);
	gpio_output_options_set(BSP_USART_RX_RCU,GPIO_OTYPE_PP,GPIO_OSPEED_50MHZ,BSP_USART_RX_PIN);
	
	/* 配置串口的参数 */
	usart_deinit(BSP_USART);                                 // 复位串口
	usart_baudrate_set(BSP_USART,115200U);                 // 设置波特率
	usart_parity_config(BSP_USART,USART_PM_NONE);            // 没有校验位
	usart_word_length_set(BSP_USART,USART_WL_8BIT);          // 8位数据位
	usart_stop_bit_set(BSP_USART,USART_STB_1BIT);     			 // 1位停止位

  /* 使能串口 */
	usart_enable(BSP_USART);                          			 // 使能串口
	usart_transmit_config(BSP_USART,USART_TRANSMIT_ENABLE);  // 使能串口发送
	
}

                                              笔记

TX 发送引脚

     RX 接受引脚

   SWDIO 数据线

   SWCLK 时钟线

初始化设置:(端口参照第一步一,建立usart.h文件中设置

                                                              开启时钟

                                     rcu_periph_clock_enable(BSP_USART_TX_RCU);
                                      rcu_periph_clock_enable(BSP_USART_TX_RCU);
                                      rcu_periph_clock_enable(BSP_USART_RCU);

                                                        GPIO口设置

                                                    gpio_af_set(BSP_USART_TX_PORT,BSP_USART_AF,BSP_USART_TX_PIN);
    gpio_af_set(BSP_USART_RX_PORT,BSP_USART_AF,BSP_USART_RX_PIN);
    
                                                  / /配置模式推挽模式
                                                  gpio_mode_set(BSP_USART_TX_RCU,GPIO_MODE_AF,GPIO_PUPD_PULLUP,BSP_USART_TX_PIN);
    gpio_mode_set(BSP_USART_RX_RCU,GPIO_MODE_AF,GPIO_PUPD_PULLUP,BSP_USART_RX_PIN);

                                                          串口参数设置

     usart_deinit(BSP_USART);                                 // 复位串口
    usart_baudrate_set(BSP_USART,115200U);                 // 设置波特率
    usart_parity_config(BSP_USART,USART_PM_NONE);            // 没有校验位
    usart_word_length_set(BSP_USART,USART_WL_8BIT);          // 8位数据位
    usart_stop_bit_set(BSP_USART,USART_STB_1BIT);                  // 1位停止位

                                                         使能串口设置   

    usart_enable(BSP_USART);                                       // 使能串口
    usart_transmit_config(BSP_USART,USART_TRANSMIT_ENABLE);  // 使能串口发送 
      

                

你可能感兴趣的:(GD32F450ZGT6,单片机,嵌入式硬件)