GD32串口0与串口1 用作485通讯测试

阅读: 评论:0

GD32串口0与串口1 用作485通讯测试

GD32串口0与串口1 用作485通讯测试

 

 

  1.  rcu_periph_clock_enable(RCU_GPIOB);//使能GPIOBrcu_periph_clock_enable( RCU_USART0);//使能串口0rcu_periph_clock_enable( RCU_AF);//使能备用时钟gpio_pin_remap_config( GPIO_USART0_REMAP,ENABLE); //引脚重映射/* connect port to USARTx_Tx */gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6);//配置PB6 复用推挽输出 TX/* connect port to USARTx_Rx */gpio_init(GPIOB, GPIO_MODE_IN_FLOATING , GPIO_OSPEED_50MHZ, GPIO_PIN_7);//配置PB7 模拟输入 RXgpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_5);//配置PB5 推挽输出  485使能端口//gpio_bit_set(GPIOB, GPIO_PIN_5);   //PB5置1  485发送使能gpio_bit_reset(GPIOB, GPIO_PIN_5); //PB5置0  485接收使能/* USART configure *///usart_deinit(USART0);//?????usart_baudrate_set(USART0, 115200U);//波特率usart_parity_config(USART0, USART_PM_NONE);//无奇偶检验usart_word_length_set(USART0, USART_WL_8BIT);//8位数据usart_stop_bit_set(USART0, USART_STB_1BIT);//一个停止位usart_hardware_flow_rts_config(USART0,USART_RTS_DISABLE);//无硬件数据流usart_receive_config(USART0, USART_RECEIVE_ENABLE);//串口接收usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);//串口发送usart_enable(USART0);//使能串口0

    贴了串口0的初始化程序,串口1只需修改串口号即可。在测试时发现引脚映射会影响通讯,在必要情况下需要关闭映射。

  2. 在转换发送和接收模式时,需要加入延时,否则数据会出现错误。

  3. 我开启的是定时器1中断,用作判断接收一段数据是否成功,但是在485转换发送模式,发送数据时,在延时中会改变临数组中第八位的值,校验位正确,但是发送出来的数据会变成00,暂时未找到原因,只能暂时将临时数组赋值放到了延时后面,猜测原因是使用定时器的某个地址与数组地址冲突。

  4. 目前测试通讯正常,下一步按通讯协议写就ok。

本文发布于:2024-02-04 13:16:17,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170708123055912.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:串口   通讯   测试
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23