GD32f303之rs485配置
简介
rs485是一种硬件通信接口,USART引脚的TTL电平通过SP485芯片转换为差分信号,+2V~+6V表示"0",- 6V~- 2V表示"1"。RS485有两线制和四线制两种接线,四线制是全双工通讯方式,本文采用两线制半双工通讯方式。
1 rs485初始化
//1、USART配置/* enable GPIO clock */rcu_periph_clock_enable(RCU_GPIOB);/* enable USART clock */rcu_periph_clock_enable(RCU_USART2);/* connect port to USARTx_Tx */gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_10 );/* connect port to USARTx_Rx */gpio_init(GPIOB, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_11);/* USART configure */usart_deinit(USART2);usart_baudrate_set(USART2, 9600U);usart_receive_config(USART2, USART_RECEIVE_ENABLE); //默认接收使能usart_transmit_config(USART2, USART_TRANSMIT_ENABLE);usart_enable(com);//2、 rs485使能/* enable the RS485_OE clock */rcu_periph_clock_enable(RCU_GPIOC);/* configure led GPIO port */gpio_init(GPIOC, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_3);GPIO_BC(GPIOC) = GPIO_PIN_3; //默认接收使能//3、rs485中断初始化nvic_irq_enable(USART2_IRQn,0, 1U);usart_interrupt_enable(USART2, USART_INT_RBNE); /* 使能USART2读区非空中断 */ usart_interrupt_enable(USART2, USART_INT_IDLE); /* 使能USART2空闲中断 */
2 rs485发送数据
//发送数据
int rs485_send_data(uint8_t *buf, uint32_t len)
{ gpio_bit_set(GPIOC, GPIO_PIN_3);; // 设置为发送模式while(len--){while(RESET == usart_flag_get(USART2, USART_FLAG_TBE)); // 等待发送区为空usart_data_transmit(USART2, *(buf++)); // 发送数据}while(RESET == usart_flag_get(USART2, USART_FLAG_TC)); // 发送完成中断rxcount = 0; gpio_bit_reset(GPIOC, GPIO_PIN_3); // 设置为接收模式return 0;
}
3 中断接收数据
void USART2_IRQHandler(void)
{ if((RESET != usart_interrupt_flag_get(USART2, USART_INT_FLAG_RBNE)) && (RESET != usart_flag_get(USART2, USART_FLAG_RBNE)))// 接收到数据{ rxbuffer[rxcount++] = usart_data_receive(USART2);usart_interrupt_flag_clear(USART2, USART_INT_FLAG_RBNE); //清中断标志} else if (RESET != usart_interrupt_flag_get(USART2, USART_INT_FLAG_IDLE)) {usart_interrupt_flag_clear(USART2, USART_INT_FLAG_IDLE);usart_data_receive(USART2); /* 清除接收完成标志位 */g_rs485_receive_end = 1; //事件通知接收完成}
}
GD32f303之rs485配置相关推荐
- STM32CUBEMX开发GD32F303(14)----IIC之配置OLED
STM32CUBEMX开发GD32F303.14----IIC之配置OLED 概述 视频教学 csdn课程 样品申请 生成例程 配置时钟树 IIC配置 OLED 参考程序 HAL_I2C_Mem_Wr ...
- GD32F303调试小记(三)之IIC(硬件IIC+PCF8563实时时钟)
前言 前面的文章介绍了在单片机中常用的两种通信协议(USART和SPI),并给出了GD32F303对应的配置流程.这次介绍第三种常见的通信协议IIC.这此使用GD32的硬件IIC通信PCF8563实时 ...
- D-MNSV6-X8|D-MNSV7-X16磁导航传感器RS232/RS485(MODBUS-RTU)通讯协议说明
D-MNSV6-X8|D-MNSV7-X16磁导航传感器是一款支持RS232/RS485(MODBUS-RTU)通讯协议的传感设备,利用集磁道钉的磁场特性研究磁信号检测.车辆与磁道钉之间相对运动于一体 ...
- 【Buildroot】学习记录(2)配置注释
文章目录 一.前言 二.Buildroot目录结构 三.Buildroot配置选项 四.Target options(目标选项) 五.Build options(编译选项) 六.Toolchain(工 ...
- S7-1212C AC/DC/DLY作为PN主站通过PROFINET转Modbus RTU网关设备与Micro Logix 140
S7-1212C AC/DC/DLY作为PN主站通过EnTalk PROFINET Slave – Modbus RTU Master 3 Port RS485网关设备与Micro Logix 140 ...
- BACnet MSTP协议485功能测试
文章目录 BACnet MSTP协议485功能测试 一.命令行运行方法 二.测试工具 1.使用sscom串口助手 2.使用yabe查看结果 三.代码部分 1.包含头文件 2.变量和宏定义 2.RS48 ...
- Linux UART驱动分析及测试
1.Linux TTY驱动程序框架 Linux TTY驱动程序代码位于/drivers/tty下面.TTY的层次接口包括TTY应用层.TTY文件层.TTY线路规程层.TTY驱动层.TTY设备驱动层.T ...
- Linux内核(一) [ IMX RK ] TTY-UART驱动框架解析
平台:NXP imx6ull 内核版本:4.1.15 文章目录 一.Linux TTY驱动框架 二.Linux Uart驱动框架 三.UART相关结构体uart_driver(UART驱动结构体) . ...
- HaaS506-HD1 RTU快速开始
一.简介 HaaS506-HD1是一款基于4G-CAT1通信的工业级RTU. 支持一路485.一路232.2路AI.2路DI.2路继电器接口.支持TCP.HTTP.MQTT等多种网络协 ...
最新文章
- 虚拟机安装Ubuntu14.04打开FireFox提示Server not found
- 汉字为什么能流传至今_女皇武则天自创18个汉字,有17个被废除了,只有这1个字流传至今...
- 数论 —— 佩尔方程与连分数
- STL map与Boost unordered_map - 有何不可的日志 - 网易博客
- 这有一个机器人,粉刷本领强
- Loonframework-DAO-Alpha-0.1.0发布
- 【ACL 2019】腾讯AI Lab解读三大前沿方向及20篇入选论文
- 如何设置高度为1的分隔线
- 安卓post 提交图片流和字符数据
- 高斯消去法,列主元法,LU分解法python程序
- 54、消防控制室的设置要求
- Unity Mesh网格编程(三) Shader实现水面或旗帜飘扬效果
- 电子商务H5游戏推荐:创意h5消消乐案例模板
- 2022危化品企业双重预防机制数字化建设成为迫切任务
- C#程序设计之windows应用程序设计基础
- 使用UltraISO制作Ubuntu16.04 U盘启动盘
- CUDA编程--邻近点查询
- MongoDB---数据类型,集合操作
- 也碰到了刷新后再闪烁的问题
- MySQL5.7.28_03_一张图片带你进阶MySQL
热门文章
- 元宇宙游戏新体验,Aquqnee的“P2E”完美平衡
- ICASSP2023|达摩院语音实验室入选论文全况速览
- P4799 [CEOI2015 Day2]世界冰球锦标赛 (双端搜索)
- 飞行机器人专栏(十一)-- 空中机器人综合健康管理系统
- 研究生毕业在杭州落户
- 设n是一任意自然数,如果n的各位数字反向排列所得的自然数与n相等,则n被称为回文数。 从键盘输入一个5为数字,请编写程序判断这个数字是不是回文数。
- 单片机控制发光二极管的显示(2)
- 思绪尘埃梦婉花舞,心事微风彩蝶翩跹
- 【Android】条形码/二维码扫描——ZXing源码分析及相关jar包导入
- 【沐风老师】3dMax一键生成中央空调排风口插件使用教程