问一个M3单片机读表的问题

2019-08-23 14:21发布

本帖最后由 challenger 于 2017-4-1 18:06 编辑

刚从51转型m3的,以前想把串口数据从表中读取直接如下:

u8 xdata[]=Table[]={0xff,0xfe,0x20,0x20,0x20,0x20,0x20,0x20,0x01,0xfd,0xfc,};

然后读表如下:
u8 i;
for(i=0;i<11;i++)
{
Uart(table);
}
就可以了。

可现在M3突然printf,sprintf。。。不会用。

我想用M3输出以上表中数据:
只能用sprintf((char*)p1,"数据:%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x",TB1[0],TB1[1],TB1[2],TB1[3],TB1[4],TB1[5],TB1[6],TB1[7],TB1[8],TB1[9],TB1[10]);可TB1[0]到TB1[10]太长了,如何用sprintf((char*)p1,"数据:%x“,X函数)搞定?


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
正点原子
1楼-- · 2019-08-23 17:31

        USART1->DR =DR=table[i];   
        while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
替换你的Uart函数即可。
challenger
2楼-- · 2019-08-23 17:37
正点原子 发表于 2017-4-1 18:06
USART1->DR =DR=table;   
        while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
替换你的Uart函 ...

identifier "DR" is undefined   编译出来一个DR未定义呀!
challenger
3楼-- · 2019-08-23 18:34
challenger 发表于 2017-4-2 10:37
identifier "DR" is undefined   编译出来一个DR未定义呀!

原子哥,DR未定义是什么原因?数据寄存器名字不对,还是包含文件没包含进来?找了半天,没找出来。
challenger
4楼-- · 2019-08-23 23:51
正点原子 发表于 2017-4-1 18:06
USART1->DR =DR=table;   
        while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
替换你的Uart函 ...

原子哥,DR未定义是什么原因?数据寄存器名字不对,还是包含文件没包含进来?找了半天,没找出来。
challenger
5楼-- · 2019-08-24 02:37
 精彩回答 2  元偷偷看……
challenger
6楼-- · 2019-08-24 07:28
正点原子 发表于 2017-4-1 18:06
USART1->DR =DR=table;   
        while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
替换你的Uart函 ...

原子哥,去掉一个DR就不报了。
USART1->DR =table;   
        while((USART1->SR&0X40)==0);

一周热门 更多>