找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

串口通讯 问题,请教高手。。

查看数: 2522 | 评论数: 9 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-11-9 16:17

正文摘要:

用的普中科技C51 单片机开发板。 现在想实现AD转换,我有一个直线电位计,单片机通过AD转换将电位计的数值显示在动态数码管上,同时增加一个串口,从串口助手上发送1,单片机将当前直线电位计的数值返回串口助手, ...

回复

ID:423648 发表于 2018-11-14 16:00
15942379927 发表于 2018-11-13 15:38
你可以试一试用八位的码去验证 比如说0x0a 是1  0x0b是2  。。。。。无非就是在case那里改一下

你的意思 就是  我 把receiveData=='1'  这里的1  改成0x0a吗?这样可以,但是并没有解决返回值是乱码的问题。。 现在问题的原因找到了,就是Read_AD_Data(0xE4)返回的是数字,而串口传过去的是字符串,所以就是乱码了。但是我不知道怎么写。。

我尝试用数组把数字摘出来 ,一个一个传

void Usart() interrupt 4
{
        u8 receiveData;
        u8 str[4];
        u8 i;
        u8 j;
       
        if(RI == 1)
        {
                RI = 0;//清除接收中断标志位
                receiveData=SBUF;//储存接收到的数据         

                for(j=1;j<5;j++)
                {
                        if(receiveData=='1')
                        {
                                i=Read_AD_Data(0xE4);
                                str[1]=i/1000+48;
                                str[2]=i%1000/100+48;
                                str[3]=i%1000%100/10+48;
                                str[4]=i%1000%100%10+48;       
                                SBUF=str[j];       
                        }
                        else
                        {
                                SBUF=receiveData;
                        }
                }
        }
        while(!TI);                         //等待发送数据完成
        TI=0;                                                 //清除发送完成标志位
}


但是这样也不对。。。
ID:423648 发表于 2018-11-14 15:55
guangshi_wq 发表于 2018-11-13 14:42
SBUF=Read_AD_Data(0xE4);        
没有看见你的子涵数。不知道怎么调用啊。

Read_AD_Data(0xE4)  这个里面就是0-4095,一共4096个数,是我采直线电位计的返回值。。。现在确定就是中断这块的问题,而且是 Read_AD_Data(0xE4)  里面的数字和字符串之间的矛盾,如果我把 Read_AD_Data(0xE4)  改成48,那么串口助手上的返回值就是0。。。。但是现在关键是 不知道这里怎么处理。
ID:331575 发表于 2018-11-13 15:38
你可以试一试用八位的码去验证 比如说0x0a 是1  0x0b是2  。。。。。无非就是在case那里改一下
ID:331575 发表于 2018-11-13 15:32
1貌似跟停止位重复了 ,串口分不清楚到底是数据位还是停止位  我的分析
ID:375003 发表于 2018-11-13 14:42
SBUF=Read_AD_Data(0xE4);        
没有看见你的子涵数。不知道怎么调用啊。
ID:423648 发表于 2018-11-13 11:22
为什么没人来,能不能把这个贴子转到问答区啊
ID:423648 发表于 2018-11-12 09:15
没人吗?呃

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表