stm32 RS485 SP3485
RS485 是半双工通信(2 线制)
SP3485芯片的DE与RE短接在一起连接在STM32F1芯片的PG3上,通过PG3管脚就可以控制 SP3485的收发,当PG3=0时,为接收模式,当PG3=1时,为发送模式
相关文章:http://blog.csdn.net/zhangxuechao_/article/details/77095985
举例
void USART2_IRQHandler()
{
u8 r;
if(USART_GetITStatus(USART2, USART_IT_RXNE) == SET)
{
r = USART_ReceiveData(USART2);
rs485 = 1; //使能发送
delay_ms(1);
USART_SendData(USART2, r);
led1 = ~led1;
while(USART_GetFlagStatus(USART2, USART_FLAG_TC) != SET);
rs485 = 0;
}
USART_ClearFlag(USART2, USART_FLAG_TC);
}
void RS485_init()
{
GPIO_InitTypeDef gpiog3 =
{
GPIO_Pin_3,
GPIO_Speed_50MHz,
GPIO_Mode_Out_PP //推挽输出
};
GPIO_InitTypeDef gpioa2 =
{
GPIO_Pin_2,
GPIO_Speed_50MHz,
GPIO_Mode_AF_PP //复用推挽输出
};
GPIO_InitTypeDef gpioa3 =
{
GPIO_Pin_3,
GPIO_Speed_50MHz,
GPIO_Mode_IN_FLOATING //模拟输入
};
NVIC_InitTypeDef nvic =
{
USART2_IRQn,
2,
2,
ENABLE
};
USART_InitTypeDef usart =
{
9600,
USART_WordLength_8b,
USART_StopBits_1,
USART_Parity_No,
USART_Mode_Rx | USART_Mode_Tx,
USART_HardwareFlowControl_None, //硬件流控制
};
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOG, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
GPIO_Init(GPIOG, &gpiog3);
GPIO_Init(GPIOA, &gpioa2);
GPIO_Init(GPIOA, &gpioa3);
USART_Init(USART2, &usart);
USART_Cmd(USART2, ENABLE);
USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
NVIC_Init(&nvic);
rs485 = 0; //默认接收
}
stm32 RS485 SP3485的更多相关文章
- stm32 USART rs485 rs232
转载自:http://www.cnblogs.com/chineseboy/archive/2013/03/06/2947173.html 前题: 前段时间,在公司调试了一个项目,很简单,但对于初学的 ...
- STM32菜鸟成长记录---RS485通讯协议的应用
写作原因:近来蛋闲?非也 ! 昨天一同事合作的项目代码出现的bug-----他的上位机每200ms给我发送命令向我这边下位机读取一些数据,在此过程会按下按键做一些另外操作并给他返回数据:(通信是通 ...
- (7)STM32使用HAL库实现RS485通讯(全双工串口)
一.硬件 如下图所示,485芯片链接到单片机的USART2上,但是默认的USART2并不是在PD5和PD6上,这里是需要重映射的.另外PG4作为485收发的控制(在485协议中,RE.DE同时为高电平 ...
- stm32通信概述
本文提到的内容有以下几个方面: 通信概述 串口通信 I2C通信 CAN通信 SPI通信 I2S通信 USB通信 其他通信 一.通信概述 按照数据传送方式分: 串行通信(一条数据线.适合远距离传输.控制 ...
- stm32之通信
本文提到的内容有以下几个方面: 通信概述 串口通信 I2C通信 CAN通信 SPI通信 I2S通信 USB通信 其他通信 一.通信概述 按照数据传送方式分: 串行通信(一条数据线.适合远距离传输.控制 ...
- RS485通讯协议的应用 (转)
源:http://blog.chinaunix.net/uid-26921272-id-3506640.html RS485缺点: RS485总线是一种常规的通信总线,它不能够做总线的自动仲裁,也就是 ...
- v3学院带你一次性认清UART、RS-232、RS-422、RS-485的区别
通讯问题,和交通问题一样,也有高速.低速.拥堵.中断等等各种情况.如果把串口通讯比做交通,UART比作车站,那么一帧的数据就好比汽车.汽车跑在路上,要遵守交通规则.如果是市内,一般限速30.40,而高 ...
- 【RL-TCPnet网络教程】第5章 PHY芯片和STM32的MAC基础知识
第5章 PHY芯片和STM32的MAC基础知识 本章节为大家讲解STM32自带的MAC和PHY芯片的基础知识,为下一章底层驱动的讲解做一个铺垫. 5.1 初学者重要提示 5.2 ...
- 采用ADM2483磁隔离器让RS485接口更简单更安全
采用ADM2483磁隔离器让RS485接口更简单更安全 摘要:本文介绍RS485的特点及应用,指出了普通RS485接口易损坏的问题,针对存在的问题介绍了以ADM2483为核心的磁隔离解决方案. 关键词 ...
随机推荐
- linux修改配置文件解决mysql中文乱码和指定数据库存储引擎
如题,mysql数据库的中文显示乱码: 先看下原来数据库里的字符编码: mysql> show variables like '%character_set%'; +-------------- ...
- mysql 1577、1548错误 解决方案
mysql 1577.1548错误 解决方案 1.mysql版本: 5.5.12 2.问题原因: 使用Navicat导出数据库的提示 :1577 – Cannot proceed because sy ...
- PAT 甲级 1052 Linked List Sorting (25 分)(数组模拟链表,没注意到不一定所有节点都在链表里)
1052 Linked List Sorting (25 分) A linked list consists of a series of structures, which are not ne ...
- PAT 甲级 1039 Course List for Student (25 分)(字符串哈希,优先队列,没想到是哈希)*
1039 Course List for Student (25 分) Zhejiang University has 40000 students and provides 2500 cours ...
- SpringBoot集成tk mybatis插入数据,回显主键为null
实体信息如下 @Data public class ApiCertificate{ @Id @GeneratedValue(generator = "JDBC") private ...
- Mac 裁剪mp3
系统自带的QuickTime Player
- Java多线程——线程池使用示例
示例代码: import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public cla ...
- easyui datagrid设置一开始不加载数据
解决办法就是:一开始的url属性设置为空,例如: <table id="dg" title="用户管理" class="easyui-datag ...
- 第十四章 SSL——《跟我学Shiro》
目录贴:跟我学Shiro目录贴 对于SSL的支持,Shiro只是判断当前url是否需要SSL登录,如果需要自动重定向到https进行访问. 首先生成数字证书,生成证书到D:\localhost.key ...
- Flutter FutureBuilder异步请求列表示例
Flutter的FutureBuilder列表示例 import 'package:flutter/material.dart'; import '../service/service_method. ...