我在写串口通信程序遇到的坑

我在做基于HC6800的51单片机上,写串口通信程序遇到了许多坑。

一个大坑:为什么HC6800上U转串口不能发送数据。

因为我们向HC6800烧程序都是使用图1所示的软件,所以我想当然地认为可以直接通过HC6800上的U转串进行串口通信,而我的同学信誓旦旦地告诉我可以。坑爹。并且这个软件好像也在提示可以用直接用U转串,进行串口通信(见图2)。但是当我打开串口调试助手的时候(如图3),却发现单片机掉电了(如图4)。其实HC6800上有另一个串口的,我们只要把连接图5黄框处串口。并且在图4中的6处,改变短路帽的接法,使之从USB下载模式转到串口通信模式(请仔细比对图4和图6)。

        图1 烧录软件

 

图2 软件的暗示

图3 打开串口调试助手

图4 单片机掉电

 

 

图5 黄框是另一个串口

图6 串口短路帽正确的接法

在完成了以上步骤之后,基本上我们就完成了串口通信的硬件连接准备。再来设置一下软件的配置。

下面的设置以波特率2400为示例

1、设置单片机内的波特率

2、设置串口调试助手的波特率

3、设置驱动中的波特率

 

 

 

注意:

服务器和客户端中波特率一定要一致,不然就收不到消息或收到错误的消息。

作者:kissazi2 
出处:http://www.cnblogs.com/kissazi2/ 
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/kissazi2/archive/2013/05/30/3108280.html

时间: 2024-10-31 13:55:00

我在写串口通信程序遇到的坑的相关文章

在CB6下基于api函数编写串口通信程序简介

1-在C++ Builder 6.0下基于api函数编写串口通信程序简介: 在dos/win95/win98的年代,操作系统对串口是不保护的,也就是说将串口的的资源完全开放给用户,用户可以用直接操作硬件的函数(比如说TC2.0下的inport()和outport()函数) 跟串口直接打交道,这时候用户使用直接操作串口的函数怎样"折磨"串口都是没有问题的,操作系统根本就不管不问,对串口操作所造成的一切后果都是用户一个人承担的,这时候用户对串口具有高度自由的支配权:但是,这种情况好景不长,

求解答-C语言51单片机串口通信程序求教

问题描述 C语言51单片机串口通信程序求教 #include #include #include #define INBUF_LEN 4 //数据长度 unsigned char inbuf1[INBUF_LEN]; unsigned char checksum,count3; bit read_flag=0; void init_serialcomm(void) { SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr TMOD

qt-Qt5 怎样 把 串口通信 程序 编译到Android 平台上 使用 ?

问题描述 Qt5 怎样 把 串口通信 程序 编译到Android 平台上 使用 ? 如题.Qt5 怎样 把 串口通信 程序 编译到Android 平台上 使用 ?现在编好了PC版,但是怎么编译到Android上,似乎有各种不兼容. 解决方案 应该主要是串口库的问题.java中的串口通讯是通过非标准库实现的,所以,很明显需要根据采用的库.平台进行部署.在android上使用,首先需要库的linux版本,然后还需要是for ARM的.

Java写TCP通信程序的关闭问题

问题描述 在写TCP通信程序时,Java或者C++都会遇到端口无法迅速释放的问题,即在关闭时可能会出现Close_Wait,Time_Wait,Fin_wait_1,Fin_wait_1这四种状态,但是如何修正或者避免这些问题呢???始终没有找到方法.希望大牛们帮帮小弟 解决方案 解决方案二:不懂up解决方案三:貌似java操作不了那么底层吧解决方案四:谢谢解决方案五:2楼但是确实存在这个问题啊,比如一个apache的web服务器,如果有很多client接进来,但是关闭的时候,许多端口都成了cl

DOS下串口通信程序来传送文件的源代码

接收程序: #include <dos.h>#include <fstream.h>#include <conio.h>#include <stdio.h>#include <stdlib.h>#include <math.h>#define RXD 0 //接收#define TXD 0 //发送#define LSB 0 //波特率调节低8位#define MSB 1 //波特率调节高8位#define IER 1 // 中断起用

遇到一个C#的串口通信程序问题,特来求教_(:з」∠)_

问题描述 我写了一个程序利用2个端口连接2台仪器,过程是这样的:在窗体的load事件中就会打开serialHVT.Open();serialPLC.Open();我有4个功能按钮,每个功能对应一个计时器,按钮方法内会发送一个指令给一个仪器,计时器内也会有一个指令发送给另外一个仪器,当点击第一个按钮时会触发第一个计时器,时间为5秒,5秒过后关闭该计时器,模拟点击第二个按钮,第二个按钮会继续触发第二个计时器,以此类推然后问题就出现在这些过程当中,总会提示2个之中的某个端口被关闭希望各位大神给指导下,

Linux下串口通信异常的问题

问题描述 Linux下串口通信异常的问题 本人在linux下进行串口通信程序开发,把串口通信放在一条单独的线程里,问题来了,程序在启动另外一个计算线程后,串口通信出现异常.两线程间并没有任何数据共享,串口通信无论非组塞还是阻塞都有问题!请高手分析下原因! 解决方案 串口通信的帧同步问题 解决方案二: 出现异常是什么意思? 串口读和写是不同的线程么?还是就一个简单的线程啊?

VB串口通信出现实时错误8020

问题描述 本人VB新手,最近用USB转RS232用VB编写出现了8020的问题,操作系统是WIN764位.用串口调试助手测试是没有问题的,可以发送接受数据,驱动说明没有问题.程序是从CSDN论坛上下载的(VB串口通信程序(VB程序)).请问各位大神有什么办法解决吗?下面附上代码和一些串口调试助手,和端口截图.代码:PrivateSubCMDRe_Click()TRe.Text=TRe.Text&vbCrLf&CStr(MSComm1.Input)MsgBox"2222first&

Android串口通信(基于Tiny6410平台)

更多信息请移步:http://xiebaochun.github.io/ 友善之臂的Android系统有他们自己编写的一个串口通信程序,网上没有找到他的源代码,而且界面操作不在一个界面,不是很方便,这里我自己写了一个粗糙点的串口通信程序. 同样这里还是调用友善之臂的friendlyarm-hardware.so库文件. 在Android工程文件下面加入com.friendlyarm.androidSDK包,在其下添加HardwareControler.java.下面我把我做的截图发上来.