Electronics 板


LINE

请教一下各位前辈 小弟正在弄一个透过VB2010(PC)-RS232-8051 资料去回的实习 以便将来我监控资料 目前可以用VB把资料传过去,也可以把资料传回来 可是传过去的资料没有办法正确的传回来 例如我传送1 回来是g(113) 传送2 回来是r(114) b 194 c 195 可以请问 问题是出在哪个环节吗? 300P币答谢! VB CODE: ********************变数定义**************************** Dim i As Integer Dim aa As Integer = 0 Dim send_data As String Dim input As Integer = 0 Dim receive_data As String Dim Ctr As Control Dim BRx(256) As char ********************************************************* UART设定 ********************************************************* Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load SerialPort1.DataBits = 8 SerialPort1.StopBits = IO.Ports.StopBits.One SerialPort1.Parity = IO.Ports.Parity.None ********************************************************* RECEIVE ********************************************************* Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick For Me.i = 0 To 255 'BRX CLEAR BRx(i) = 0 Next receive_data = SerialPort1.BytesToRead If receive_data = 0 Then Exit Sub If receive_data > 256 Then receive_data = 256 End If For Me.j = 1 To receive_data BRx(input) = SerialPort1.ReadByte aa = BRx(input) txt_receive.Text = txt_receive.Text & Chr(BRx(input)) input = input + 1 Next input = 0 Timer1.Enabled = False For Me.i = 0 To 255 BRx(i) = 0 Next Timer1.Interval = 500 Timer1.Enabled = True *********************************************************************** SEND *********************************************************************** Private Sub send_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles send.Click send_data = 0 For Me.i = 0 To Len(txtSend.Text) - 1 send_data = Mid(txtSend.Text, 1 + i, 1) Me.SerialPort1.Write(send_data) Call delay(90000) Next i End Sub 8051 CODE /*------------------------------------------------ 串口初始化 ------------------------------------------------*/ void InitUART (void) { SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收 TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装 TH1 = 0xFD; // TH1: 重装值 9600 串列传输速率 晶振12MHz TR1 = 1; // TR1: timer 1 打开 EA = 1; //打开总中断 // ES = 1; //打开串口中断 } ------------------------------------------------- 串口中断程式 ------------------------------------------------*/ void UART_SER (void) interrupt 4 //串列中断服务程式 { unsigned char Temp; //定义临时变数 if(RI) //判断是接收中断产生 { RI=0; //标志位元清零 Temp=SBUF; //读入缓冲区的值 P1=Temp; //把值输出到P1口,用於观察 SBUF=Temp; //把接收到的值再发回电脑端 } if(TI) //如果是发送标志位元,清零 TI=0; } --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.251.222.115 Deltaguita:转录至看板 Visual_Basic 03/07 16:07 ※ 编辑: Deltaguita 来自: 60.251.222.115 (03/07 16:08) ※ 编辑: Deltaguita 来自: 60.251.222.115 (03/07 16:13) ※ 编辑: Deltaguita 来自: 60.251.222.115 (03/07 16:15)
1F:推 Anal:buadrate 的设定对吗?通常rs232出错都是这个问题 03/07 18:38
2F:→ narcissusli:从这4个文字的传收来看,是51端UART的设定有问题. 03/07 21:27
3F:→ Deltaguita:好的 小弟明天放上buadrate那边的设定 顺便修改看看 03/07 21:55
4F:推 su35:我觉得你VB的程式会错误喔 他可能还没全部接收完 你程式就跑 03/07 22:06
5F:→ su35:完了 Buadrate那 要看你的振荡器的时脉 书本上跟你的板子用的 03/07 22:07
6F:→ su35:震荡器 不见得一样的 03/07 22:08
7F:→ su35:我自己VB是用事件中断去执行 遇到中断才会去执行 单晶片那传 03/07 22:10
8F:→ su35:送自订的协定封包 所以我会有表头档这些资料 03/07 22:11
9F:→ su35:知道会收到多少个 并且计时 超过时间还没收完就放弃 收到正确 03/07 22:11
10F:→ su35:的BYTE就会接下去执行 03/07 22:12
※ 编辑: Deltaguita 来自: 60.251.222.115 (03/08 11:04) ※ 编辑: Deltaguita 来自: 60.251.222.115 (03/08 11:09) ※ 编辑: Deltaguita 来自: 60.251.222.115 (03/08 15:05)
11F:→ Deltaguita:报告各位前辈 板子上面的是写12M 注解写11.0596 03/08 15:06
12F:→ Deltaguita:请问是一样的吗? 03/08 15:07
13F:→ narcissusli:不一样喔,通常11.0592MHz是为了9600bps用的,如果用12M 03/11 21:26
14F:→ narcissusli:会导致51端的传收偏移,这可以解释你传1/2/b/c的结果. 03/11 21:29
15F:→ narcissusli:用2进位去看就知道了. 03/11 21:30
16F:→ Deltaguita:感谢 已经解决! 03/12 15:53
17F:→ sneak: 从这4个文字的传收来看 https://muxiv.com 08/13 19:23
18F:→ sneak: 我觉得你VB的程式会错 https://daxiv.com 09/17 23:17







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP