找回密码
 立即注册
查看: 112|回复: 5

printf函数影响数码管显示

[复制链接]

该用户从未签到

4

主题

7

回帖

62

积分

注册会员

积分
62
发表于 2024-3-5 22:05:11 | 显示全部楼层 |阅读模式
#include "public.h"
#include "digital.h"


char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";

#define KEY2 P32
#define KEY3 P33

int  temp_value=0;
u8 temp_buf[8];

void Smg_dispaly(void);

void main()
{
       
  bit run_flay=0;

        sys_init();
  usb_init();
  EA = 1;
       
               
       
       
        while(1)
        {
               
               
          if(DeviceState!=DEVSTATE_CONFIGURED)
                continue;
               
          if(bUsbOutReady)
                {
                                usb_OUT_done();
                  
                }
               
   Smg_dispaly();
               
   if(run_flay==1)
         {
          
                delay_ms(1);
                temp_value++;
         }
                  
               
                if(KEY2==0)
                 {
                   delay_ms(10);
                         if(KEY2==0)
                         {
                                while(KEY2==0)
                                {
                                  Smg_dispaly();
                                }
                                delay_ms(10);
                                if(run_flay==0)temp_value=0;
                                run_flay=!run_flay;
//        if(run_flay==1)temp_value=0;
                          
                         }                                 
                 }
       
  }
}  


void Smg_dispaly(void)
{
                temp_buf[0]=gsmg_code[1];
          temp_buf[1]=gsmg_code[0]&0x7f;
          temp_buf[2]=gsmg_code[0];
                temp_buf[3]=gsmg_code[0];   
           temp_buf[4]=gsmg_code[temp_value/1000];//百位
                temp_buf[5]=gsmg_code[temp_value%1000/100]&0x7f;//十位
                temp_buf[6]=gsmg_code[temp_value%1000%100/10];//个位+小数点
                temp_buf[7]=gsmg_code[temp_value%1000%100%10];//小数点后一位
    digital_tube(temp_buf,1);
}




#include "digital.h"
#include "public.h"
u8 gsmg_code[10]={0xc0,0xf9,0xa4,0xb0,0x99,
                  0x92,0x82,0xf8,0x80,0x90,
                 };
u8 Pos_display[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
u8 num=0;
                                                                 
/*******************************************************************************
* 函 数 名       : digital_tube
* 函数功能                 : 动态数码管显示
* 输    入       : dat:要显示的数据
                                   pos:从左开始第几个位置开始显示,范围1-8
* 输    出             : 无
*******************************************************************************/       

#ifndef _DIGITAL_H_
#define _DIGITAL_H_

#include "public.h"

#define SMG_A_DP_PORT        P6
#define KEY2        P32

extern u8 gsmg_code[10];
extern u8 Pos_display[8];

void digital_tube(u8 dat[],u8 pos);

#endif


                                                         
void digital_tube(u8 dat[],u8 pos)
{
  u8 i=0;
        u8 pos_temp=pos-1;
       

        for(i=pos_temp;i<8;i++)
        {

               
                P7=Pos_display[i];
                SMG_A_DP_PORT=dat[i-pos_temp];//传送段选数据
                printf("dat[%u]=%x\n",i-pos_temp,dat[i-pos_temp]);
                delay_ms(1);;//延时一段时间,等待显示稳定
                SMG_A_DP_PORT=0xff;//消音
        }
       
       
       
       
}


printf函数注释掉后试验箱数码管不显示

回复 送花

使用道具 举报

该用户从未签到

4

主题

7

回帖

62

积分

注册会员

积分
62
 楼主| 发表于 2024-3-5 22:15:18 | 显示全部楼层
为何会影响,不明白?
回复 支持 反对 送花

使用道具 举报

该用户从未签到

4

主题

7

回帖

62

积分

注册会员

积分
62
 楼主| 发表于 2024-3-5 22:17:15 | 显示全部楼层
使用的是stc9.62试验箱
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    开心
    3 小时前
  • 签到天数: 148 天

    [LV.7]常住居民III

    39

    主题

    416

    回帖

    2244

    积分

    荣誉版主

    积分
    2244
    发表于 2024-3-5 22:54:09 | 显示全部楼层
    这个是因为你其他c文件有printf了,这边屏蔽掉会使得另一边调用堵塞。
    你找找看其他c文件里面的printf一起屏蔽掉就好了。
    你这个问题其实不仅是不显示,其实是整个程序卡死了
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    4

    主题

    7

    回帖

    62

    积分

    注册会员

    积分
    62
     楼主| 发表于 2024-3-6 11:06:22 | 显示全部楼层
    谢谢
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    9 小时前
  • 签到天数: 179 天

    [LV.7]常住居民III

    18

    主题

    609

    回帖

    777

    积分

    高级会员

    打工人

    积分
    777
    发表于 2024-3-6 17:49:55 | 显示全部楼层
    王昱顺 发表于 2024-3-5 22:54
    这个是因为你其他c文件有printf了,这边屏蔽掉会使得另一边调用堵塞。
    你找找看其他c文件里面的printf一起 ...

    正解
    打工人
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-6-13 17:32 , Processed in 0.061308 second(s), 48 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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