STM32菜鸟成长记录---RS485通讯协议的应用
写作原因:近来蛋闲?
非也 ! 昨天一同事合作的项目代码出现的bug-----他的上位机每200ms给我发送命令向我这边下位机读取一些数据,在此过程会按下按键做一些另外操作并给他返回数据;(通信是通过)
1.他定时200ms给我发回指令,我应该给他返回字符串:
@VUMultiGet(Out_1, -inf dBFS, Normal, Out_2, -inf dBFS, Normal, Out_3, -inf dBFS, Normal, Out_4, -inf dBFS, Normal, Out_5, -inf dBFS, Normal, Out_6, -inf dBFS, Normal, Out_7, -47.6 dBFS, Normal, Out_8, -inf dBFS, Normal)
2.随机按下按键我除了做其他操作,应该给他返回字符串:@Load(1)
定时给他返回信息时,随机按下按键出现了以下错误现象:
@VUMultiGet(Out_1, -inf dBFS, Normal, Out_2, -inf dBFS, Normal, Out_3, -inf dBFS, Normal, Out_4, -inf dBFS, Normal, Out_5, -inf dBFS, Normal, Out_6, -inf dBFS, Normal, Out_7, -47.6 dBFS, Normal, Out_8, -inf dBFS, Normal)@Load(1)ultiGet(Out_1, -inf dBFS, Normal, Out_2, -inf dBFS, Normal, Out_3, -inf dBFS, Normal, Out_4, -inf dBFS, Normal, Out_5, -inf dBFS, Normal, Out_6, -inf dBFS, Normal, Out_7, -47.6 dBFS, Normal, Out_8, -inf dBFS, Normal)@VUMultiGet(Out_1, -inf dBFS, Normal, Out_2, -inf dBFS, Normal, Out_3, -inf dBFS, Normal, Out_4, -inf dBFS, Normal, Out_5, -inf dBFS, Normal, Out_6, -inf dBFS, Normal, Out_7, -47.6 dBFS, Normal, Out_8, -inf dBFS, Normal)@
上面红色部分看懂了吗?看出错误了吗? 代码中关于发送信息的部分分别是:
200ms定时返回的数据,串口发送代码如下:
//把格式化的数据写入某个字符串缓冲区
len = sprintf(buf, "@VUMultiGet(%s%d, %.1f dBFS, %s)",
AM_ChnStrTable[i+LAYOUT_INPUT_SIZE],
i+1,
VU.Level,
AM_VUClipStrTable[VU.Clip]);
USART_SEND((uint8*)buf, len); 按键按下,返回信息,串口发送代码如下:
USART_SEND((uint8*)"@Load(0)", sizeof("@Load(0)"));
最终调试找到bug的原因为: 按键按下发送的字符串没有 结束符 导致错误;
所以有感把串口通讯中没有正确发送接收的原因在此总结一下:
接收不到数据,原因:1.用示波器检测,“发送管脚”是否有数据发出;
2.用示波器检测,“接收管脚”是否有数据接收到;
3. 波特率问题---通讯的波特是否一致;
接收的数据不正确,原因:1.可能是外部时钟是否用对,stm32默认的外部晶振是8MHZ,如果错接为12MHZ相应改程序配置,否则串口时钟不对,波特率也不对;
(例如:即表面上设置了用19200波特率通讯,实际时钟不对,波特率实际不是19200)波特率与时钟的关系具体查看我的博客:http://blog.csdn.net/yx_l128125/article/details/9197787
2.用“字符串”通讯时,是否有结束符;
3.使用双串口时,确认串口是否接正确;(串口1、串口2搞混)
4.还有1种可能 请看我的博客:http://blog.csdn.net/yx_l128125/article/details/7914102
STM32菜鸟成长记录---RS485通讯协议的应用
STM32菜鸟成长记录---RS485通讯协议的应用的更多相关文章
- RS485通讯协议的应用 (转)
源:http://blog.chinaunix.net/uid-26921272-id-3506640.html RS485缺点: RS485总线是一种常规的通信总线,它不能够做总线的自动仲裁,也就是 ...
- 第41章 RS-485通讯实验—零死角玩转STM32-F429系列
第41章 RS-485通讯实验 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...
- MODBUS-RTU通讯协议简介
MODBUS-RTU通讯协议简介 什么是MODBUS? MODBUS 是MODICON公司最先倡导的一种软的通讯规约,经过大多数公司 的实际应用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规 ...
- 基于dubbo框架下的RPC通讯协议性能测试
一.前言 Dubbo RPC服务框架支持丰富的传输协议.序列化方式等通讯相关的配置和扩展.dubbo执行一次RPC请求的过程大致如下:消费者(Consumer)向注册中心(Registry)执行RPC ...
- STM32学习笔记(十) CAN通讯测试(环回模式)
1.CAN通讯的理解 想学习CAN通讯,那么要对通讯协议有一定的认知.通讯协议是指通信双方对数据传送控制的一种约定.约定中包括对数据格式,同步方式,传输速度,传送步骤,检纠错方式以及控制字符定义等问题 ...
- Netty 对通讯协议结构设计的启发和总结
Netty 通讯协议结构设计的总结 key words: 通信,协议,结构设计,netty,解码器,LengthFieldBasedFrameDecoder 原创 包含与机器/设备的通讯协议结构的设计 ...
- 几种通讯协议的比较RMI > Httpinvoker >= Hessian >> Burlap >> web service
一.综述本文比较了RMI,Hessian,Burlap,Httpinvoker,web service等5种通讯协议的在不同的数据结构和不同数据量时的传输性能.RMI是java语言本身提供的远程通讯协 ...
- ISO7816通讯协议在工控主板EM9160中的实现方案
在新的国家电网智能终端相关标准中,规定了通过专门的加密芯片来保证设备数据安全性的方法,而设备主控单元与加密芯片采用了广泛应用的ISO7816通讯协议.工控主板EM9160为了适应这一新的技术需求,对其 ...
- TCP/IP 中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议
原文地址:http://hi.baidu.com/albyuyrgqgbbhoq/item/65006d2d002ab33195f62ba1 TCP/IP(Transmission Control P ...
随机推荐
- Hadoop学习之YARN框架
转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/,非常感谢分享! 对于业界的大数据存储及分布式处理系统来说,H ...
- C++学习之函数指针
C++学习之函数指针 和数据项类似,函数也有地址,函数的地址是存储在机器语言代码的内存的开始地址.通常,这些地址对用户而言,不重要也没什么用处,但对程序而言,它却很有用. 一.函数 ...
- Struts学习之文件上传
* 单文件上传: * 在动作类action中声明相关属性: * 在动作类action中,要声明与页面中表单name属性同名的属性,同名的属性的类型是File类型: ...
- Models——英语学习小技巧之四
Models are very important, here model means role model, is kind of like a hero. It's someone that ...
- 通过springmvc的RequestMapping的headers属性的使用
直接上图: springmvc中可以通过@RequestMapping注解折配置headers属性,也就是通过headers属性来配置请求头信息,从而通过这个属性值来映射请求,因为不同浏览器的Acce ...
- xStream完美转换XML、JSON_java
http://www.cnblogs.com/hoojo/archive/2011/04/22/2025197.html
- APM代码学习笔记1
libraries目录 传感器 AP_InertialSensor 惯性导航传感器 就是陀螺仪加速计 AP_Baro 气压计 居然支持BMP085 在我印象中APM一直用高端的MS5611 AP_Co ...
- 阿里云ECS每天一件事D8:nginx1.7整合php5.4
nginx本身的并不能解析php或者jsp,要转发给后端的php或者tomcat以及其他类似的应用程序服务器来提供服务. 首先我需要完成的配置是实现与php的整合,典型的配置信息如下: server ...
- RHEL6.4 postfix+dovecot搭建邮件服务器
实验需求:为公司搭建一台能够收信和发信的邮件服务器(192.168.100.1),为员工提供服务,公司域名为jinjianjun.com. 一.修改DNS服务器(192.168.100.2)上mx邮件 ...
- 多版本jQuery的使用剖析
</div> </div> <!-- basic scripts --> <!--[if !IE]> --> <!-- <![endi ...