【求助】Bascom,如何在串口输出16进制的内容?
本帖最后由 AAAL 于 2013-7-9 21:14 编辑Bascom-AVR环境下,如何通过串口输出HEX16进制的内容呢?
我的下位机,需要通过一些控制协议命令和上位机沟通,比方说“7F 00 01 10 80 01 C5 CC CF AA B6 AB 2F 7F ”
7F 00为控制协议的开始,2F 7F为控制协议的截至。
我要把“7F 00 01 10 80 01 C5 CC CF AA B6 AB 2F 7F ”通过串口发出去,让上位机串口调试软件的接收区域以HEX16进制方式显出我的这个控制协议。
但是,我绞尽脑汁想不出该怎么写这个语句,正在努力百度和google中……
望坛友能指点一二谢谢{:3_59:}
以下代码,能够做到16进制HEX格式的数据通过串口送到PC接收了。仔细学习阅读一下,哈哈$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 16
$framesize = 32
Dim Temp As Byte
Dim Lssj(29) As Byte
Dim Js As Byte
Dim I As Byte
Dim Bz0 As Byte '通讯结束标志,主程序开始处理
Dim Bz1 As Byte '中断开始接收标志
On Urxc Receive_isr
Enable Urxc '使能接收中断
Enable Interrupts '使能全局中断
Bz1 = 0
Bz0 = 1
Js = 1
Do
If Bz0 = 0 Then
Printbin Lssj(1) , 29
Bz0 = 1
End If
Loop
End
Receive_isr:
Temp = Udr
If Temp = &H7F Then Bz1 = 0
If Bz1 = 0 Then
Lssj(js) = Temp
Incr Js
If Js = 30 Then
Bz0 = 0
Bz1 = 1
Js = 1
End If
End If
Return
End {:3_60:}这么多人看,咋都没有人理我呢? bascom用的人应该不多,帮顶 高级软件的框里显示的是“字符”,看看转换的关系。 lningbd 发表于 2013-7-9 14:00 static/image/common/back.gif
高级软件的框里显示的是“字符”,看看转换的关系。
谢谢你帮顶。
你理解错了,不是PC端显示的问题,而是发送端需要以HEX16进制进行控制字的发送,通过串口发送。
bascom自己带有print函数,但是,它是发送字符串的 printfsprintf 函数学过吧 tcm123 发表于 2013-7-9 18:22 static/image/common/back.gif
printfsprintf 函数学过吧
亲,你这个不是Bascom的函数吧?你这个应该是C语言之类的 {:3_46:}搞定了。
输出hex16进制的语句:printbin &H**,&H**,&H****为你需要输出的数据,单个数据只需&H**,多个数据用,隔开
页:
[1]