OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2212|回复: 4

LCD显示中sprintf函数出错

[复制链接]

10

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2019-2-12
在线时间
36 小时
发表于 2019-2-18 12:34:50 | 显示全部楼层 |阅读模式
5金钱
                              sprintf((char*)string,"%s%.3f","ADC Value:",temp);                LCD_DisplayStringLine(Line6,string);                                       //打印ADC转换的值




                sprintf((char*)string1,"  %s%.3f","PA9:",100*(arr-PA9pwmout)/arr);
                LCD_DisplayStringLine(Line7,string1);                                      //打印PA9引脚输出的PWM波占空比
               
                sprintf((char*)string2," %s %.3f","PA9:",720000000/arr);
                LCD_DisplayStringLine(Line8,string2);                                      //打印PWM波的频率


             想请教各位 为什么LCD显示的三行都相同(都输出的是ADC的值)????
            







完整的main函数如下




int main(void)
{       
         float adcx;
         u8  string[20];         u8  string1[20];         u8  string2[20];
         float    temp;
         u16      arr=7199;//71999(1kHZ)~~7199(10kHZ)  频率可调PWM波
         
       
         key_Init();
         Adc_Init();
         LED_Init();
         TIM1_PWM_Init(arr,0);//PWM波频率为  72000000/arr
         
         
        //LCD显示
        STM3210B_LCD_Init();//LCD初始化函数
         
        LCD_Clear(White);
        LCD_SetTextColor(Green);
        LCD_SetBackColor(Red);
   
        LCD_ClearLine(Line0);
        LCD_ClearLine(Line1);
        LCD_ClearLine(Line2);
        LCD_ClearLine(Line3);
        LCD_ClearLine(Line4);


        LCD_DisplayStringLine(Line1,"     ADC DEMO      ");
        LCD_DisplayStringLine(Line3,"  PB0-ADC channel 8 ");


        LCD_SetTextColor(Black);
        LCD_SetBackColor(White);
               
               
               
               
    while(1)
        {
                u16 PA9pwmout;


                PA9pwmout=arr-(adcx*arr)/0xfff;          //占空比与ADC的关系
                TIM_SetCompare2(TIM1,PA9pwmout);   //改变CCR2的值,调节占空比
               
       
                adcx=Get_Adc( ADC_Channel_8);
                temp=adcx*(3.3/0xfff);




                sprintf((char*)string,"%s%.3f","ADC Value:",temp);
                LCD_DisplayStringLine(Line7,string);
                sprintf((char*)string1,"    %s%.3f","PA9:",100*(arr-PA9pwmout)/arr);
                LCD_DisplayStringLine(Line6,string1);
               
                sprintf((char*)string2," %s %.3f","PA9:",720000000/arr);
                LCD_DisplayStringLine(Line8,string2);
       


  
         
        }
        }
       

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2019-2-12
在线时间
36 小时
 楼主| 发表于 2019-2-18 12:34:51 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-2-19 01:47:51 | 显示全部楼层
帮顶
回复

使用道具 举报

6

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
金钱
374
注册时间
2012-12-30
在线时间
48 小时
发表于 2019-2-21 09:39:02 | 显示全部楼层
您觉得您发的这段有问题吗?
没有
那问题在其它地方
打包发来看看
回复

使用道具 举报

10

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2019-2-12
在线时间
36 小时
 楼主| 发表于 2019-2-21 15:01:43 | 显示全部楼层
BG4RFF 发表于 2019-2-21 09:39
您觉得您发的这段有问题吗?
没有
那问题在其它地方

谢谢,已经解决了,将打印输出的变量强制转换成float就好了
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 14:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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