找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1320|回复: 9
收起左侧

GSM模块发送密码是乱码

[复制链接]
ID:985137 发表于 2022-5-3 12:09 | 显示全部楼层 |阅读模式
需要全部程序我在发出来,程序有点多
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
回复

使用道具 举报

ID:1023503 发表于 2022-5-3 14:16 | 显示全部楼层
可能串口波特率设置的问题吧
回复

使用道具 举报

ID:1023503 发表于 2022-5-3 14:21 | 显示全部楼层
可能是波特率的问题
回复

使用道具 举报

ID:879348 发表于 2022-5-3 16:16 | 显示全部楼层
要转成字符串,很明显你没有这一步
回复

使用道具 举报

ID:161164 发表于 2022-5-3 17:10 | 显示全部楼层
试试
Print_Char(genPasswd[ i] + '0');
回复

使用道具 举报

ID:883242 发表于 2022-5-3 19:41 | 显示全部楼层
genPasswd[0] = passwd/100+'0';
后面几句以此类推。
回复

使用道具 举报

ID:985137 发表于 2022-5-3 23:29 来自手机 | 显示全部楼层
粗线第一列,就是这个
20200907221050939.png
回复

使用道具 举报

ID:985137 发表于 2022-5-4 09:24 | 显示全部楼层
lkc8210 发表于 2022-5-3 17:10
试试
Print_Char(genPasswd[ i] + '0');

OK,实现了。太谢谢了
回复

使用道具 举报

ID:985137 发表于 2022-5-4 09:25 | 显示全部楼层
Hephaestus 发表于 2022-5-3 19:41
genPasswd[0] = passwd/100+'0';
后面几句以此类推。

这样的话,密码变成英文了,上面那位老哥是对的,不过还是谢谢回答我的问题
回复

使用道具 举报

ID:432727 发表于 2022-5-4 10:30 | 显示全部楼层
这不是波特率问题,发的是数据而不是字符,短信那边显示的应该是字符,按照ASCII码对应的。改的话后面+‘0‘就行了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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