AAAL 发表于 2013-7-8 22:12:20

【求助】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

AAAL 发表于 2013-7-8 22:40:02

{:3_60:}这么多人看,咋都没有人理我呢?

hyghyg1234 发表于 2013-7-9 12:13:16

bascom用的人应该不多,帮顶

lningbd 发表于 2013-7-9 14:00:05

高级软件的框里显示的是“字符”,看看转换的关系。

AAAL 发表于 2013-7-9 18:18:30

lningbd 发表于 2013-7-9 14:00 static/image/common/back.gif
高级软件的框里显示的是“字符”,看看转换的关系。

谢谢你帮顶。
你理解错了,不是PC端显示的问题,而是发送端需要以HEX16进制进行控制字的发送,通过串口发送。

bascom自己带有print函数,但是,它是发送字符串的

tcm123 发表于 2013-7-9 18:22:26

printfsprintf 函数学过吧

AAAL 发表于 2013-7-9 19:30:55

tcm123 发表于 2013-7-9 18:22 static/image/common/back.gif
printfsprintf 函数学过吧

亲,你这个不是Bascom的函数吧?你这个应该是C语言之类的

AAAL 发表于 2013-7-10 17:55:25

{:3_46:}搞定了。

输出hex16进制的语句:printbin &H**,&H**,&H****为你需要输出的数据,单个数据只需&H**,多个数据用,隔开
页: [1]
查看完整版本: 【求助】Bascom,如何在串口输出16进制的内容?