标题: GSM模块发送密码是乱码 [打印本页]

作者: 2248373991    时间: 2022-5-3 12:09
标题: GSM模块发送密码是乱码
需要全部程序我在发出来,程序有点多
uchar genPasswd[4];           //存储生成的四位随机数密码
uchar inpPasswd[4];           //存储取包时输入的四位密码


void Init_Timer()
{
    PCON=0x00;         
    SCON=0x50;         
    TMOD=0x21;         
    TL0 =0x00;
    TH0 =0x4C;
    TL1 =0xfd;   
    TH1 =0xfd;
    TR0 =1;
    TR1 =1;
    ET0 =1;
    ES  =1;
    EA  =1;
}


Print_Str("Meal code:");//短信内容               
        for(i=0;i<4;i++)
        {
                Print_Char(genPasswd[i]);        //四位验证码
        }

passwd = TL0;  //采用定时器寄存器的值作为密码
                                        genPasswd[0] = passwd/100;                  //存储密码
                                        genPasswd[1] = passwd%100/10;
                                        genPasswd[2] = passwd%10;
                                        genPasswd[3] = (genPasswd[1]+genPasswd[2])%10;




51hei图片_20220503115956.jpg (133.25 KB, 下载次数: 41)

51hei图片_20220503115956.jpg

作者: zrqlllllly    时间: 2022-5-3 14:16
可能串口波特率设置的问题吧
作者: zrqlllllly    时间: 2022-5-3 14:21
可能是波特率的问题
作者: wufa1986    时间: 2022-5-3 16:16
要转成字符串,很明显你没有这一步
作者: lkc8210    时间: 2022-5-3 17:10
试试
Print_Char(genPasswd[ i] + '0');
作者: Hephaestus    时间: 2022-5-3 19:41
genPasswd[0] = passwd/100+'0';
后面几句以此类推。
作者: 2248373991    时间: 2022-5-3 23:29
粗线第一列,就是这个

20200907221050939.png (162.28 KB, 下载次数: 46)

20200907221050939.png

作者: 2248373991    时间: 2022-5-4 09:24
lkc8210 发表于 2022-5-3 17:10
试试
Print_Char(genPasswd[ i] + '0');

OK,实现了。太谢谢了
作者: 2248373991    时间: 2022-5-4 09:25
Hephaestus 发表于 2022-5-3 19:41
genPasswd[0] = passwd/100+'0';
后面几句以此类推。

这样的话,密码变成英文了,上面那位老哥是对的,不过还是谢谢回答我的问题
作者: S.T.A.L.K.E.R.    时间: 2022-5-4 10:30
这不是波特率问题,发的是数据而不是字符,短信那边显示的应该是字符,按照ASCII码对应的。改的话后面+‘0‘就行了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1