
求高手解答: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语言表达一条命令呢?
最好能给出代码。 展开
#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语言表达一条命令呢?
最好能给出代码。 展开
2个回答
展开全部
int cmd[]={0x1b,0x06,0x44,0x0d};
for (i=0;i<4;i<++)
{
uart0_send_byte(cmd[i]&ff);
}
你编译器不支持不可打印char?用这样
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);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询