OpenEdv-开源电子网

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

STM32F103有关Show_Str函数显示变量前,更改变量类型时编译不成功求助

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2022-3-5
在线时间
3 小时
发表于 2022-3-5 17:48:50 | 显示全部楼层 |阅读模式
1金钱
从商家购得的压力传感器配套函数,其内部变量均定义为s32/u32 ,而用Show_Str函数显示变量时,需要把此变量转换为字符串。
所以我使用了u8 dis_buff[3]={0};sprintf((char*)dis_buff,"%2d",Weight_Shiwu);来转换。
可编译时报错error:  #268: declaration may not appear after executable statement in block
我将这行代码放在了整个main函数的任意地方均无果,仍旧报错。
不知如何是好。
下面是完整的主函数:
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "key.h"
#include "usmart.h"
#include "malloc.h"  
#include "MMC_SD.h"
#include "ff.h"  
#include "exfuns.h"
#include "fontupd.h"
#include "text.h"       
#include "HX711.h"

//技术支持:www.openedv.com
//广州市星翼电子科技有限公司  
int main(void)
{
         

         
        u32 fontcnt;                  
        u8 fontx[2];//gbk码
        delay_init();                     //延时函数初始化          
        uart_init(9600);                 //串口初始化为9600                         
        LCD_Init();                        //初始化液晶
        LED_Init();         //LED初始化                                                                                                                                                                                 
        usmart_dev.init(72);        //usmart初始化       
        exfuns_init();                        //为fatfs相关变量申请内存  
       

       
         
        Init_HX711pin();//压力传感器初始化
        NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
        Get_Maopi();                                //称毛皮重量
        delay_ms(1000);
        delay_ms(1000);
        Get_Maopi();                                //重新获取毛皮重量


        POINT_COLOR=RED;      
        Show_Str(60,50,200,16,"Mini STM32开发板",16,0);                                             
        Show_Str(60,70,200,16,"电子秤项目程序",16,0);                                             
        Show_Str(60,90,200,16,"正点原子@ALIENTEK",16,0);                                             
        Show_Str(60,110,200,16,"2022年3月5日",16,0);
        POINT_COLOR=BLUE;  
        Show_Str(60,150,200,24,"总重:",16,0);                                             
        Show_Str(60,170,200,24,"去皮:",16,0);                                             
        Show_Str(60,230,200,16,"版本V1.0",16,0);
         
       


        while(1){
                Get_Weight();
                u8 dis_buff[3]={0};sprintf((char*)dis_buff,"%2d",Weight_Shiwu);
                Show_Str(60+144,150,200,24,dis_buff,16,0);
                delay_ms(500);
                LED0=!LED0;
        }

}   




求各位指点。

最佳答案

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

得把变量/数组定义放函数最前面,不然你就选C99模式也可以
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2022-3-5 17:48:51 | 显示全部楼层
得把变量/数组定义放函数最前面,不然你就选C99模式也可以
回复

使用道具 举报

0

主题

465

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1732
金钱
1732
注册时间
2021-4-11
在线时间
320 小时
发表于 2022-3-7 15:13:28 | 显示全部楼层
帮顶
                 
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 00:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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