找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4007|回复: 9
打印 上一主题 下一主题
收起左侧

keil4 *** WARNING L13: RECURSIVE CALL TO SEGMENT,怎么解决?

[复制链接]
跳转到指定楼层
楼主
100黑币
这个问题困扰好久,百度了也没解决,哪位高手帮忙看下问题出现在哪里,怎么样才能解决这个问题!
例如下面子程序
void Distance_Debug_Phase_Datapros(Uint Data) //提离调试(相位)数据处理
{

        Phase[0]=Data/1000+'0';
        Phase[1]=Data%1000/100+'0';
        Phase[2]=Data%1000%100/10+'0';
        Phase[3]=Data%1000%100%10+'0';

//        Disp_str(50,110,"N2=",Red,White);
//        Disp_shuzi(94,110,Phase[0],Red,Black);
//        Disp_shuzi(108,110,Phase[1],Red,Black);
//        Disp_shuzi(122,110,Phase[2],Red,Black);
//        Disp_shuzi(136,110,Phase[3],Red,Black);
//        dprintf(154,110,"(U115:调相)   ",Red,White);
}

LCD显示数据,屏蔽掉就没有这个警告,编译能通过







4.png (7.98 KB, 下载次数: 106)

4.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:235200 发表于 2021-1-6 13:32 | 只看该作者
显示字符的递归调用,把显示要用到的字符数据单独放在另一个C文件中
回复

使用道具 举报

板凳
ID:235954 发表于 2021-1-6 13:47 | 只看该作者
递归调用的层数过深,需要减少一下调用的层数
回复

使用道具 举报

地板
ID:743654 发表于 2021-1-6 13:53 | 只看该作者
梁廷明 发表于 2021-1-6 13:47
递归调用的层数过深,需要减少一下调用的层数

确实调用了好多层,但是减少层数那不是程序显得很复杂,可读性差
回复

使用道具 举报

5#
ID:743654 发表于 2021-1-6 13:55 | 只看该作者
csmyldl 发表于 2021-1-6 13:32
显示字符的递归调用,把显示要用到的字符数据单独放在另一个C文件中

具体如何操作呢,我新建了一个disp.c文件单独放显示部分的程序,貌似也没有作用,问题没解决
回复

使用道具 举报

6#
ID:743654 发表于 2021-2-24 16:06 | 只看该作者
解决方法:


回复

使用道具 举报

7#
ID:68189 发表于 2022-5-13 16:23 | 只看该作者
我在一个显示子函数中  定义了一人浮点数变量 ,即使这个变量 没有使用,也会出现同样的警告,这是为什么呢?
void          display_oled(void)
{
    float dfadfa;
      
    if(PAGE==0)//第一屏数据   共四行
    {
......

编译出现如下警告:*** WARNING L13: RECURSIVE CALL TO SEGMENT
把浮点变量定义成全局变量就没问题...这是为什么呢?
回复

使用道具 举报

8#
ID:883242 发表于 2022-5-13 18:41 | 只看该作者
主函数和中断函数调用了同一个函数。
回复

使用道具 举报

9#
ID:1026496 发表于 2022-5-14 17:29 | 只看该作者
回复

使用道具 举报

10#
ID:1026496 发表于 2022-5-14 17:31 | 只看该作者
具体的修改麻烦吧程序全部共享出来
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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