从商家购得的压力传感器配套函数,其内部变量均定义为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;
}
}
求各位指点。
|