串口数据数码管显示!~~~~

js1722 2008-09-25 09:55:31
0——日期,格式为“年-月-日(yy-mm-dd)”,BCD码

1——时间,格式为“时-分-秒(hh-nn-ss)” ,BCD码

返 回:成功则返回 0


例:st=rf_disp_mode(icdev,0x01);//设为显示时间


icdev是指通信设备.

我的代码:
string test = "02-03-05";

System.Text.UnicodeEncoding converter = new System.Text.UnicodeEncoding();

byte[] temp = System.Text.Encoding.Default.GetBytes(test);

st = common.rf_ctl_mode(icdev, 0); //显示受读写器控制

st = common.rf_disp_mode(icdev, 0); //显示日期

st = common.rf_disp8(icdev, 8, datetime); //显示结果

使用此代码以后,数码管里面显示的是02符号03符号05 这个符号是一个和6看起来很像的符号.
...全文
352 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
js1722 2008-09-26
  • 打赏
  • 举报
回复
不行. 我试过,char是Unicode类型. C#里好象只有byte是无符号整型.
wdgphc 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 js1722 的回复:]
不行. 我试过,char是Unicode类型. C#里好象只有byte是无符号整型.
[/Quote]

的确是这样的,但是你不是实验没成吗.
js1722 2008-09-26
  • 打赏
  • 举报
回复
可能是硬件厂商的BUG.
js1722 2008-09-25
  • 打赏
  • 举报
回复
对方提供的API要求传入大小为8的无符号字符数组参数. 我用C#里面的byte[]作为参数传入. 就是日期里面那个-显示成一个6的乱码.
js1722 2008-09-25
  • 打赏
  • 举报
回复
是我写错了 ~~~
st = common.rf_disp8(icdev, 8, datetime); 这个地方的datetime改成temp
wdgphc 2008-09-25
  • 打赏
  • 举报
回复
而且System.Text.Encoding.Default.GetBytes 也并不是返回的BCD码啊?
wdgphc 2008-09-25
  • 打赏
  • 举报
回复
你的这几句
string test = "02-03-05";

System.Text.UnicodeEncoding converter = new System.Text.UnicodeEncoding();

byte[] temp = System.Text.Encoding.Default.GetBytes(test);

定义了后面没有调用啊?
wdgphc 2008-09-25
  • 打赏
  • 举报
回复
unsigned char *datebuff=“99-05-20”;
unsigned char *numbuff1={0x01,0x02,0x03,0x04,0x85,0x06,0x07,0x08};
unsigned char *numbuff2={0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81};

后两个定义的变量并没有被调用过啊?不知道.

unsigned char *datebuff=“99-05-20”;

你试试:

char[] datebuff = "99-05-20".ToCharArray();
...
st=rf_disp8(icdev,8,datebuff);
js1722 2008-09-25
  • 打赏
  • 举报
回复
对ASC码和BCD码不懂! 但是我看到供应商给的C例子上是直接传的unsigned char类型. 但是用C#的byte[]就出问题了。
unsigned char *datebuff=“99-05-20”;
unsigned char *numbuff1={0x01,0x02,0x03,0x04,0x85,0x06,0x07,0x08};
unsigned char *numbuff2={0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81};

st=rf_ctl_mode(icdev,1);
st=rf_disp_mode(icdev,0);
st=rf_disp8(icdev,8,datebuff);
wdgphc 2008-09-25
  • 打赏
  • 举报
回复
你转换出来的是ASC码,要的是BCD码? 0-9的是一样的,唯独 这个"-" 不对.而"-" 对应的BCD码是什么我不知道.

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧