遇到个奇葩问题,用keil u4 编译个51程序,有些函数不执行?

2020-01-27 11:27发布

把这个程序烧到stc12单片机上,串口收到的数据经竟然没有经过加密处理,把key_buf定义成全局的也不行??

我确认加密程序没有问题。

难道是编译器把这个子函数忽略了?还是直接优化掉了?

有人遇到过类似问题么?


void RF_Txkey(uchar add,uchar data1,uchar data2,uchar data3) //数据加密发送
{       
        uchar data key_buf[8]={1,2,3,4,5,6,7,8};       
        key_buf[4]=data1;
        key_buf[5]=data2;                               
        key_buf[6]=data3;                               
        key_buf[7]=add;
                                                    
         //加密上面的数据 ,然后串口发送出去
                        Encrypt(key_buf,TEAkey);
                               

                                        kinbuf=key_buf[0];Com_go();
                                        kinbuf=key_buf[1];Com_go();                                               
                                        kinbuf=key_buf[2];Com_go();
                                        kinbuf=key_buf[3];Com_go();
                                        kinbuf=key_buf[4];Com_go();
                                        kinbuf=key_buf[5];Com_go();
                                        kinbuf=key_buf[6];Com_go();       
                                        kinbuf=key_buf[7];Com_go();
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
wye11083
1楼-- · 2020-01-27 13:01
检查优化选项,有可能是优化掉了。Keil uV2编译选项改一下会出现函数消失的现象。
wangyy@dianzi
2楼-- · 2020-01-27 15:36
把编译后的信息贴出来,看看内存什么的,还有就是在什么地方调用!
pkjapan
3楼-- · 2020-01-27 20:51
wangyy@dianzi 发表于 2013-8-22 09:27
把编译后的信息贴出来,看看内存什么的,还有就是在什么地方调用!

编译提示没有任何关于这个函数的信息。。。
pkjapan
4楼-- · 2020-01-28 00:01
uchar data volitile  key_buf[8]={1,2,3,4,5,6,7,8};  会怎样?
lwb807
5楼-- · 2020-01-28 00:26
 精彩回答 2  元偷偷看……

一周热门 更多>