vb通过串口发送数据问题

Rocky820618 2010-03-04 03:12:04
今天做了一下实验,从VB程序中向单片机发送数据,结果问题很严重。求高人解答一下。
比如:
从VB发出的数据 -> 单片机获得的数据
0 -> 0xfa
4 -> 0xfb
5 -> 0xff
11 -> 0xad
12 -> 0xa5
15 -> 0xcc

单片机代码:
#include <reg51.h>

//串口初始化
void serial_init(void)
{
//ET1 = 0; //CLR 0ABH ;禁止T1中断
TMOD = 0x20; //MOV 89H,#20H ;timer 1 mode 2: 8-Bit reload(定时器T1 模式2: 8位自动初值重装)
TH1 = 0xE8; //MOV 8DH,#0E8H
TL1 = 0xE8; //MOV 8BH,#0E8H ;1200bps, 11.059
TR1 = 1; //SETB 8EH ;启动定时器1

SCON = 0x50; // mode 1: 10-bit UART, enable receiver(模式1: 10位异步发送/接收, 使能接收允许位)
//SM1 = 1; // ;串行口 模式1
//SM0 = 0;
//REN = 1; // ;允许串行中断接收

SM2 = 1; //SETB O9DH ;收到有效的停止位时才将RI置1

ES = 1; //SETB 0ACH ;允许串行中断
EA = 1; //SETB 0AFH ;总中断开
}
void main(void)
{
unsigned char i;

serial_init(); // 串口初始化


do {
P0 = SBUF;
}while(1);
}
...全文
149 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
adong_q 2010-09-15
  • 打赏
  • 举报
回复

波特率不对
Rocky820618 2010-03-09
  • 打赏
  • 举报
回复
我现在是用串口模拟器模拟的,当发送数据时isis中串口插头的数据点在闪,但是灯不亮。
贝隆 2010-03-04
  • 打赏
  • 举报
回复
帮顶~~~~~~~~~~~~~
of123 2010-03-04
  • 打赏
  • 举报
回复

波特率不吻合吧?

PC 端设置的是多少?
zdingyun 2010-03-04
  • 打赏
  • 举报
回复
引用 2 楼 rocky820618 的回复:
请问如果我用串口调试助手应该在发送框中什么格式的数据。

串口调试助手上有发送数据方式选择的.
发送字符则按字符方式
发送2进制则写成16进制格式
Rocky820618 2010-03-04
  • 打赏
  • 举报
回复
请问如果我用串口调试助手应该在发送框中什么格式的数据。
zdingyun 2010-03-04
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim sj(5) As Byte
sj(0) = &H0
sj(1) = &H4
sj(2) = &H5
sj(3) = &H11
sj(4) = &H12
sj(5) = &H15
MSComm1.Output = sj
End Sub

Private Sub Form_Load()
MSComm1.Settings = "1200,n,8,1"
MSComm1.PortOpen = True
End Sub

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧