stm32 串口通信数据移位寄存器_STM32串口接RS485丢码问题已解决*_*
static void Rs4851Send(unsigned char *p,unsigned char length)
{
///TIM_SetCounter(TIM(RS4851_TIM_NO),0X01); //如果没有这句,下面延时程序会产生一帧数所结束中断(但实际数据还没发出去)
//现在可以不要了,因为在外部中断服备程序中添加,主要是那个原因
EnableRs4851Tx(); //20140903 //使能485发送
DelayMs(2);
///TIM_SetCounter(TIM(RS4851_TIM_NO),0X01); //如果没有这句,下面延时程序会产生一帧数所结束中断(但实际数据还没发出去)
//现在可以不要了,因为在外部中断服备程序中添加,主要是那个原因
Rs4851Mac.mRs485TxCount = length;
//Rs4851Mac.mPRs485Send = p;
ptmp = p;
USART_SendData(USART(RS4851_TX_PIN), *ptmp++);//*(Rs4851Mac.mPRs485Send)++);
USART_ITConfig(USART(RS4851_TX_PIN), USART_IT_TXE, ENABLE); //开始为发送中断
}
static void Rs4851SendIsr(void)
{
if(USART_GetITStatus(USART(RS4851_TX_PIN), USART_IT_TXE) != RESET)
{
Rs4851Mac.mRs485TxCount--;
if(Rs4851Mac.mRs485TxCount>0) //如果大于0,则数据没发送完,
{
USART_SendData(USART(RS4851_RX_PIN), *ptmp++);//*(Rs4851Mac.mPRs485Send)++);
}
if(Rs4851Mac.mRs485TxCount==1) //如果是最后一个数据
{
USART_ITConfig(USART(RS4851_RX_PIN), USART_IT_TXE, DISABLE); //禁止发送中断
USART_ITConfig(USART(RS4851_TX_PIN), USART_IT_TC, ENABLE); //开启发送完成中断
}
}
if(USART_GetITStatus(USART(RS4851_TX_PIN), USART_IT_TC) != RESET) //如果是发送完成中断,
{
USART_ITConfig(USART(RS4851_RX_PIN), USART_IT_TC, DISABLE); //说明是最后一个数据,
delay_us(10); //因为是等待发送完成,所以可以延时的时间短些
DisableRs4851Tx(); //禁止485发送
}
TIM_SetCounter(TIM(RS4851_TIM_NO),0X01); //如果没有这句,下面延时程序会产生一帧数所结束中断(但实际数据还没发出去)
//现在可以不要了,因为在外部中断服备程序中添加,主要是那个原因
}
stm32 串口通信数据移位寄存器_STM32串口接RS485丢码问题已解决*_*相关推荐
- stm32串口通信(初学者对于串口通信的理解)
stm32串口通信(初学者对于串口通信的理解) 标签: stm32串口通信单片机 2015-01-24 10:12 987人阅读 评论(0) 收藏 举报 分类: stm32 版权声明:本文为博主原创 ...
- (RS485 232串口通信数据解析实用干货(1)
文章目录 (RS485 232串口通信数据解析实用干货(1) 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 ...
- stm32中断方式的串口通信——上位机控制串口收发
文章目录 前言 一.什么是串口通信 二.什么是中断--STM32 1.中断的概念 2.STM32下NVIC的介绍 3.中断优先级的介绍 4.外部中断的介绍 三.串口通信keil工程文件 1.新建工程模 ...
- C#串口通信数据不完整
下面代码是我使用C#开发串口通信写的代码,在实现串口通信过程中,在数据接收线程中, 未加这条语句Thread.Sleep(50);我使用串口工具调试 ,串口通信正常,但是在与实际单片机通信过程中,出现 ...
- 搭建机器人电控系统——通信协议——串口通信USART/UART、RS232、RS485及其实例
通信协议 串口通信详解 IIC通信详解 SPI通信详解 CAN通信详解 文章目录 通信协议 什么是串口? 串口分类 USART/UART.RS232.RS485的区别 串口协议原理 传输协议 需要定义 ...
- 利用python程序、虚拟串口软件、串口通信助手,实现串口通信(两串口互相收发文字)
一.流程简述 程序可以参考: https://blog.csdn.net/colcloud/article/details/42454839 这是我参考后简化的版本: https://github.c ...
- js 串口通信mscomm接收undefined_串口通信帧的同步方法(识别一帧数据的起始结束)42...
串口通信是单片机和DSP等嵌入式系统之间,以及嵌入式系统与PC机或无线模块之间的一种非常重要且普遍使用的通信方式.在嵌入式系统的硬件结构中,通常只有一个8位或16位的CPU,不仅要完成主流程的工作,同 ...
- 串口---串口通信数据位长度对传输数据的影响
文章来源:https://blog.csdn.net/petershina/article/details/8612357 针对串口通信,关于设置数据位长度对通信的影响,如图: 在串口数据通信中,会看 ...
- 串口通信数据位长度对传输数据的影响
http://blog.csdn.net/petershina/article/details/8612357 针对串口通信,关于设置数据位长度对通信的影响,如图: 在串口数据通信中,会看到串口参数设 ...
最新文章
- java火山_各种排序算法java实现
- 通用客户端表单验证函数修正版
- javascript 判断为负数_JavaScript从零开始——标准库(7)
- 3COM小型企业有线局域网方案(三、四、五)
- go读取excel_Golang操作Excel
- 怎么样修改PuTTY的默认字体和字符集
- Laravel 开发扩展包基本流程
- uml类图用什么软件画_为什么需要UML类图建模?
- html标签元素分类
- pdfjs预览pdf乱码_卓师兄pdf转换大师app下载-卓师兄pdf转换大师安卓版 v1.0.0
- spss分析方法-因子分析(转载)
- mysql建表语句转换成oracle,如何手动将ORACLE的sql建表语句转换为MYSQL的建表语句...
- OpenCV4学习笔记(71)——散焦图像去模糊滤波
- 全自动共享软件破解器4.8
- python显示图片固定大小
- 字典攻击—Python
- python模拟硬件实现btb和tomasulo算法
- Spring -> Spring Boot、Spring MVC 和 Spring 有什么区别
- Bootstrap 3 如何设置图片居中对齐
- Primitive Function 归一化方向角
热门文章
- html5游戏面试题,关于HTML5的十大面试题
- java插入法排序_java算法之插入排序法
- 原理 rpm_图文详解,微型直流电机的工作原理
- 天正多条线段长度lisp下载_预习丨人教版六年级数学(上册)全册知识要点梳理,可下载...
- 基于 OPC 规范的客户应用程序实现
- 中国计算机信息系统集成行业协会有含金量吗,系统集成工程师证书的含金量怎么样...
- 二维码的扫描和生成(zxing-android-embedded)的基础使用
- LESS----CSS预处理语言
- 在制作只有一页的WORD小报时再添加一页
- Linux下Nginx+Tomcat整合的安装与配置