写作原因:近来蛋闲?非也  !  昨天一同事合作的项目代码出现的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通讯协议的应用的更多相关文章

  1. RS485通讯协议的应用 (转)

    源:http://blog.chinaunix.net/uid-26921272-id-3506640.html RS485缺点: RS485总线是一种常规的通信总线,它不能够做总线的自动仲裁,也就是 ...

  2. 第41章 RS-485通讯实验—零死角玩转STM32-F429系列

    第41章     RS-485通讯实验 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...

  3. MODBUS-RTU通讯协议简介

    MODBUS-RTU通讯协议简介   什么是MODBUS? MODBUS 是MODICON公司最先倡导的一种软的通讯规约,经过大多数公司 的实际应用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规 ...

  4. 基于dubbo框架下的RPC通讯协议性能测试

    一.前言 Dubbo RPC服务框架支持丰富的传输协议.序列化方式等通讯相关的配置和扩展.dubbo执行一次RPC请求的过程大致如下:消费者(Consumer)向注册中心(Registry)执行RPC ...

  5. STM32学习笔记(十) CAN通讯测试(环回模式)

    1.CAN通讯的理解 想学习CAN通讯,那么要对通讯协议有一定的认知.通讯协议是指通信双方对数据传送控制的一种约定.约定中包括对数据格式,同步方式,传输速度,传送步骤,检纠错方式以及控制字符定义等问题 ...

  6. Netty 对通讯协议结构设计的启发和总结

    Netty 通讯协议结构设计的总结 key words: 通信,协议,结构设计,netty,解码器,LengthFieldBasedFrameDecoder 原创 包含与机器/设备的通讯协议结构的设计 ...

  7. 几种通讯协议的比较RMI > Httpinvoker >= Hessian >> Burlap >> web service

    一.综述本文比较了RMI,Hessian,Burlap,Httpinvoker,web service等5种通讯协议的在不同的数据结构和不同数据量时的传输性能.RMI是java语言本身提供的远程通讯协 ...

  8. ISO7816通讯协议在工控主板EM9160中的实现方案

    在新的国家电网智能终端相关标准中,规定了通过专门的加密芯片来保证设备数据安全性的方法,而设备主控单元与加密芯片采用了广泛应用的ISO7816通讯协议.工控主板EM9160为了适应这一新的技术需求,对其 ...

  9. TCP/IP 中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议

    原文地址:http://hi.baidu.com/albyuyrgqgbbhoq/item/65006d2d002ab33195f62ba1 TCP/IP(Transmission Control P ...

随机推荐

  1. ping时不知道ping那个Ip的解决办法

    利用命令:nslookup Windows+R键,输入CMD,输入命令nslookup www.baidu.com OK!这得在联网情况下,如果本身nslookup就不行的话,可不可以认为网络就不好使 ...

  2. 安卓2D游戏开发设置

    http://www.cnblogs.com/xiaominghimi/archive/2010/12/23/1921402.html

  3. codeforces 630P. Area of a Star

    题目链接 圆上n个点等距离分布, 求构成的星星的面积. 我们可以求三角形OAB的面积, ∠CAE = 1/2 ∠ COE = PI/n, 那么∠CAO = PI/2n, ∠AOB非常好求, 就是PI/ ...

  4. 【LeetCode题意分析&解答】42. Trapping Rain Water

    Given n non-negative integers representing an elevation map where the width of each bar is 1, comput ...

  5. Linux 网络编程基础(3) -- 数据的IO

    首先介绍两个数据结构及相关的操作函数:struct iovec.struct msghdr struct iovec { void * iov_base;    /*向量的缓冲地址*/ size_t ...

  6. 转: Promises与Javascript异步编程

    在如今都追求用户体验的时代,Ajax应用真的是无所不在.加上这些年浏览器技术.HTML5以及CSS3等的发展,越来越多的富Web应用出现:在给与我们良好体验的同时,Web开发人员在背后需要处理越来越多 ...

  7. SSO 基于Cookie+fliter实现单点登录(SSO):工作原理

    SSO的概念: 单点登录SSO(Single Sign-On)是身份管理中的一部分. SSO的一种较为通俗的定义是:SSO是指訪问同一server不同应用中的受保护资源的同一用户,仅仅须要登录一次,即 ...

  8. objective-C学习笔记(五)函数成员:初始化器和析构器

    初始化器:init 对象初始化器: -(id)init 可以重载多个. 类型初始化器: +(id)initialize只能有一个. 对象初始化器: 初始化对象实例时,init通常和alloc(手动内存 ...

  9. 转-——推荐几个web中常用的一些js图表插件 - zccst

    http://www.tuicool.com/articles/bqq2Qn 作者:zccst 我自己用过fusioncharts和highchart. jQuery插件有: TufteGraph f ...

  10. LeetCode Coins in a Line

    There are n coins in a line. Two players take turns to take one or two coins from right side until t ...