广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 20742 个阅读者
 
<<   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.083400 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言