广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 25347 个阅读者
 
<<   1   2   3   4   5  下页 >>(共 6 页)
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
ken0127
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter ▼ 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[Basic][求助] 如何用RS232传送HEX档?
这是小弟的程式码
是从网路上抓下来的
可以传送一个字元是OK的
但我要传送的是很大一串HEX档的内容
却不能传?
因为我用v855617所发表的

内的RS232 通讯测试软体
里面使用「传送16进制字串,使用「,」分隔」
却可以
我把HEX档内每个用都用豆号来分隔
我在8051接收端内有判别当传送完毕会清除P1
而P1也确实的被清除了
但这个程式的缺点是没办法传送太多字
但HEX档偏偏又是 ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



献花 x0 回到顶端 [楼 主] From:未知地址 | Posted:2007-03-20 22:42 |
cmovies
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x20
分享: 转寄此文章 Facebook Plurk Twitter ▲ ▼ 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

Private Sub SendFile(ByVal HexFileName As String)
Dim HexBuffer() As Byte
Dim OutBuffer() As Byte
Dim HexLength As Long
Dim off As Long, cnt As Long, i As Integer

On Error GoTo errHandler

Open HexFileName For Binary As #1
  HexLength = LOF(1)
  ReDim HexBuffer(0 To HexLength - 1)
  Get #1, , HexBuffer()
Close #1

off = 0
Do While off < HexLength
  cnt = HexLength - off
  If cnt = 0 Then Exit Do
  If cnt > 32 Then cnt = 32
  ReDim OutBuffer(cnt - 1)
  For i = 0 To cnt - 1
    OutBuffer(i) = HexBuffer(off + i)
  Next i
  MSComm1.Output = OutBuffer
  Do While MSComm1.OutBufferCount > 0
    DoEvents
  Loop
  off = off + cnt
Loop

errHandler:
End Sub

Private Sub CmdSend_Click()
'判断串列埠是否开启
If ComOpen = False Then
  OpenCom
End If
'传输字串
SendFile(Text1.Text) ' Text1.Text1 = HEX 档名
End Sub


献花 x0 回到顶端 [1 楼] From:台湾中华HiNet | Posted:2007-03-21 03:03 |
ken0127
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter ▲ ▼ 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

请问大大这个程式是直接将档案传送过去的吗?
也就是直接传送hex到8051的啰?
那…Private Sub SendFile(ByVal HexFileName As String)
这一行的那个控制项在哪....不好意思…vb不太行..


献花 x0 回到顶端 [2 楼] From:未知地址 | Posted:2007-03-21 21:35 |
cmovies
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x20
分享: 转寄此文章 Facebook Plurk Twitter ▲ ▼ 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

SendFile 是副程式, 由你的 CmdSend 的 OnClick 中呼叫, 并把 Text1 当成档名输入

Private Sub CmdSend_Click()
'判断串列埠是否开启
If ComOpen = False Then
OpenCom
End If
'传输字串
SendFile(Text1.Text) ' Text1.Text1 = HEX 档名
End Sub


献花 x0 回到顶端 [3 楼] From:台湾中华电信HINET | Posted:2007-03-21 22:35 |
ken0127
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter ▲ ▼ 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

这是用winsock的吗?
我要如何把档案叫到里面然后传送出去呢?

刚刚我用另一个测试的
只是让P1亮然后暗
HEX档非常短
来试我的loader
我是让SRAM在位址0开始
也就是之后跳到0X0000开始
但您说在传送完之后
将EA接地,然后RESET
但在RESET之后他没有跳到SRAM的样子
只是单纯的将8051 RESET而已
我是用ICE模拟的


献花 x0 回到顶端 [4 楼] From:未知地址 | Posted:2007-03-21 23:28 |
cmovies
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x20
分享: 转寄此文章 Facebook Plurk Twitter ▲ ▼ 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

SendFile 做的就是读档然后透过 MSComm1(RS232) 来传送给 8051. 为何你觉得是 WinSock???

你有将 PSEN 接到 SRAM 的 OE 吗?
不过有 ICE 在的话, 不确定按 RESET 会怎么动. 这跟 ICE 的硬体设计有关吧!?

有些 ICE 在模拟前就需要设定用的是 80C31(外部ROM) 或 87C51(内部Flash).


献花 x0 回到顶端 [5 楼] From:台湾中华电信HINET | Posted:2007-03-22 00:13 |
ken0127
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter ▲ ▼ 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

因为我看到好像winsock也是可以传输档案的...
但对vb不了解,所以提出来问
那我只要将我的hex放在跟vb执行档同一个目录底下就会自动读取档案了吗?

我有将psen与rd脚and后接到sram的oe脚
关于您说的模拟前设定的那个
有设定一个是P0跟P2是Port mode或是Bus mode
Port mode:All of the program memory access are from ON-Chip program memory
Bus mode:All or PART of the program memory access are from EXTERNAL memory

那我是否应该设为Bus mode呢?


献花 x0 回到顶端 [6 楼] From:未知地址 | Posted:2007-03-22 00:41 |
cmovies
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x20
分享: 转寄此文章 Facebook Plurk Twitter ▲ ▼ 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

你只要输入有路径的档名, 放哪里都可以. 例如: C:\TEST.HEX
你可以放一个 File Dialog 到你的 Form. 然后用这个 File Dialog 去选择档案比较方便!

看起来应该用 Bus Mode, 但可不可以用还要看你的 ICE 是否真的有支援外部 ROM.
因为有些ICE还有 Memory Map 的功能. 让ICE内部的SRAM对应到外部ROM.
还有 EA 脚是否真的对你的ICE有效, 这就只能试看看才知道.


献花 x0 回到顶端 [7 楼] From:台湾中华电信HINET | Posted:2007-03-22 00:57 |
ken0127
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter ▲ ▼ 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

刚刚将路径指定上去
SendFile (C:\WORK.Hex) ' Text1.Text1 = HEX 档名

结果显示语法错误
我打错了?


献花 x0 回到顶端 [8 楼] From:未知地址 | Posted:2007-03-22 01:12 |
cmovies
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x20
分享: 转寄此文章 Facebook Plurk Twitter ▲ 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

SendFile("C:\WORK.Hex")


献花 x0 回到顶端 [9 楼] From:台湾中华电信HINET | Posted:2007-03-22 01:17 |

<<   1   2   3   4   5  下页 >>(共 6 页)
首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.019720 second(s),query:5 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言