OpenEdv-开源电子网

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

求助求助求助!! !

[复制链接]

10

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2019-2-12
在线时间
36 小时
发表于 2019-2-20 20:24:51 | 显示全部楼层 |阅读模式
10金钱
想请教各位 为什么LCD显示的三行都相同(都输出的是ADC的值)????




         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波的频率


QQ图片20190218122946.jpg

完整的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);
        


  
         
        }
        }


最佳答案

查看完整内容[请看2#楼]

把它改成 sprintf((char*)string,"%s%.3f","ADC Value:",1.2); LCD_DisplayStringLine(Line7,string); sprintf((char*)string1," %s%.3f","PA9:",2.3); LCD_DisplayStringLine(Line6,string1); sprintf((char*)string2," %s %.3f","PA9:",4.5); LCD_DisplayStringLine(Line8,string2); 看结果大慨就知道问 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2019-2-20 20:24:52 | 显示全部楼层
把它改成
sprintf((char*)string,"%s%.3f","ADC Value:",1.2);
                LCD_DisplayStringLine(Line7,string);
                sprintf((char*)string1,"    %s%.3f","PA9:",2.3);
                LCD_DisplayStringLine(Line6,string1);               
                sprintf((char*)string2," %s %.3f","PA9:",4.5);
                LCD_DisplayStringLine(Line8,string2);
        
看结果大慨就知道问题在哪儿了
回复

使用道具 举报

10

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2019-2-12
在线时间
36 小时
 楼主| 发表于 2019-2-20 20:44:11 | 显示全部楼层
edmund1234 发表于 2019-2-20 20:32
把它改成
sprintf((char*)string,"%s%.3f","ADC Value:",1.2);
                LCD_DisplayStringLine(L ...

我懂了,原因是打印的变量不是float类型的,强制转换成float就ok了·
                sprintf((char*)string,"%s%.3f","ADC Value:",temp);
                LCD_DisplayStringLine(Line6,string);//LCDÏÔê¾ADC
                sprintf((char*)string1,"%s%.3f","PA9:",(float)100*(arr-PA9pwmout)/arr);
                LCD_DisplayStringLine(Line7,string1);//LCDÏÔê¾Õ¼¿Õ±è
               
                sprintf((char*)string2,"%s%.3f","PA9:",720000000/(float)arr);
                LCD_DisplayStringLine(Line8,string2);//LCDÏÔê¾ÆμÂê
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 13:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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