GD32串口通信

串口是指外设和处理器之间通过数据信号线、地线和控制线等,按位进行数据传输的一种通讯方式

要先配置使能串口   需要配置 波特率 数据位   奇偶校验位  停止位,调用发送函数

波特率   表示每秒钟传送bit的个数

数据位  表示一个信息包里包含的数据位的个数

停止位   表示单个信息包的最后位

奇偶校验位表示一种检查数据错误的方式

波特率计算方法

个字节是8bit,如果波特率是9600bps,理论上1秒可以传输9600/8=1200字节如果波特率是115200bps,理论上1秒可以传输115200/8=14400字节

串口通信是一位一位地传输,每传输一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平),后面由7位数据位组成,接着是一位校验位,最后是停止位。停止位后面是不定长的空闲位,停止位和空闲位都规定为高电平。

串口发送数据

1.串口配置(属于外设)

①开启时钟

时钟宏定义

#define BSP_USART_RCU     RCU_USART0   时钟定义

#define BSP_USART_TX_RCU  RCU_GPIOA    接收

#define BSP_USART_RX_RCU  RCU_GPIOA    发送

时钟使能

Rcu_periph_clock_enable( BSP_USART_RCU); //开启串口时钟

Rcu_periph_clock_enable(BSP_USART_TX_RCU )开启端口时钟

Rcu_periph_clock_enable(BSP_USART_RX_RCU )开启端口时钟

②GPIO配置

/*开启时钟    先开启GPIO其中是PA9 与PA10控制*/

rcu_periph_clock_enable( BSP_USART_TX_RCU);  //设置输入输出

    rcu_periph_clock_enable( BSP_USART_RX_RCU);

rcu_periph_clock_enable( BSP_USART_RCU);//使能串口0

/*配置GPIO复用(AF)*/

gpio_af_set(BSP_USART_TX_PORT,BSP_USART_AF,BSP_USART_TX_PIN);  //GPIO是串口功能所以选择AF 7

gpio_af_set(BSP_USART_RX_PORT,BSP_USART_AF,BSP_USART_RX_PIN);  //GPIO是串口功能所以选择AF 7

//GPIO模式mode

/*配置复用功能模式 配置上拉模式*/

gpio_mode_set(BSP_USART_TX_PORT,GPIO_MODE_AF,GPIO_PUPD_PULLUP,BSP_USART_TX_PIN);

gpio_mode_set(BSP_USART_RX_PORT,GPIO_MODE_AF,GPIO_PUPD_PULLUP,BSP_USART_RX_PIN);

/*配置GPIO输出*/

gpio_output_options_set(BSP_USART_TX_PORT,GPIO_OTYPE_PP,GPIO_OSPEED_50MHZ,BSP_USART_TX_PIN);

gpio_output_options_set(BSP_USART_RX_PORT,GPIO_OTYPE_PP,GPIO_OSPEED_50MHZ,BSP_USART_RX_PIN);

③串口参数配置

/*配置串口数据参数   1波特率2数据位3停止位4奇偶效验位*/

usart_deinit(BSP_USART);//选择串口0

usart_baudrate_set(BSP_USART,115200);//配置波特率

usart_parity_config(BSP_USART,USART_PM_NONE);//配置校验位   无校验位这里选择   USART_PM_EVEN这个是 偶数

usart_word_length_set(BSP_USART,USART_WL_8BIT);//配置数据位 8

usart_stop_bit_set(BSP_USART,USART_STB_1BIT);//停止位

④使能串口

/*使能串口*/

usart_enable(BSP_USART);

/*配置串口发送*/

usart_transmit_config(BSP_USART,USART_TRANSMIT_ENABLE);//USART_TRANSMIT_ENABLE使能串口传输

2.串口发送数据

串口发送字符函数

usart_gpio_config();

usart_send_data('h');

串口发送字符串

3.串口实验

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值