求高手解答:arm7通过rs232串口发送数据到led显示屏上

在arm7通过rs232串口发送数据到led点阵牌显示过程中,单片机发送数据的函数如下#definePRINT_MSG(s)uart0_printf(s)voiduart... 在arm7通过rs232串口发送数据到led点阵牌显示过程中,单片机发送数据的函数如下
#define PRINT_MSG(s) uart0_printf(s)
void uart0_send_byte(char dat)
{
U0THR = dat;
while ((U0LSR & 0x40) == 0); // 等待数据发送完毕
}

void uart0_printf(char *str)
{
while (1)
{
if (*str == '\0')
{
break; // 遇到结束符,退出
}
uart0_send_byte(*str++); // 发送数据
}
}
//main.c
PRINT_MSG(mystr);//mystr是char型数据

而led点阵屏的通讯协议是:
ESC 屏号 命令 起始行数 数 据 ……… 数 据 ODH
协议代码为十六进制数。
例如:清屏命令是"1b 06 44 0d"这四个十六进制字节。
如何用c语言表达一条命令呢?
最好能给出代码。
展开
 我来答
who_dog
2012-12-13 · TA获得超过137个赞
知道小有建树答主
回答量:161
采纳率:100%
帮助的人:112万
展开全部
int cmd[]={0x1b,0x06,0x44,0x0d};
for (i=0;i<4;i<++)
{
uart0_send_byte(cmd[i]&ff);

}

你编译器不支持不可打印char?用这样
更多追问追答
追问
函数原型:uart0_send_byte(char dat);要发送的是char型数据,你用cmd[i]&ff能解释下什么意思吗?我在编译时会报错
追答
uart0_send_byte(((char)cmd[i])&ff);
匿名用户
2012-12-13
展开全部
char 数组 不就行了
追问

char mystr[]={0x1b,0x06,0x44,0x0d};

你是说用这句话吗?不行,我试过了,编译报错:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式