- 打卡等级:以坛为家II
- 打卡总天数:455
- 最近打卡:2026-03-21 22:08:47
已绑定手机
金牌会员
- 积分
- 2264
|
我用AI8051U-32Bit芯片指令,且头文件选择“AI8051U.H”编译时有些函数语句会始终提示
warning C188: 'parameter 1': value truncated,
但用STC89C52RC芯片指令,头文件选择“REG51.h”编译则一切正常。
附上出现该提示时的语句,麻烦各位大佬帮忙分析一下,看该如何操作才能避免这样子的错误警告。
//u8已经宏定义
#define u8 unsigned char
#define u16 unsigned int
#define u32 unsigned int
提示框:
USER\oled.c(101): warning C188: 'parameter 1': value truncated
定位到的语句:
void OLED_Set_Pos(u8 x, u8 y) //坐标设置
{
x+=2;
OLED_WR_Byte(0xb0+y,OLED_CMD); <<<<<<这里就是定位到的出错语句
OLED_WR_Byte(((x&0xf0)>>4)|0x10,OLED_CMD);
OLED_WR_Byte((x&0x0f),OLED_CMD);
}
和其相关的函数:
void OLED_WR_Byte(u8 dat,u8 cmd) //写入函数
{
u8 i;
if(cmd) //发送命令/数据
OLED_DC_Set(); //发送数据
else
OLED_DC_Clr(); //发送指令
OLED_CS_Clr(); //片选选中状态
for(i=0;i<8;i++) //发送8位一字节的数据
{
OLED_SCL_Clr(); //时钟线置0,准备写入数据
if(dat&0x80) //获得高位数据
{
OLED_SDA_Set(); //高位为1,数据线置1
}
else
{
OLED_SDA_Clr(); //高位不为1,数据线置0
}
OLED_SCL_Set(); //时钟线置1,写入数据
dat<<=1; //将数据左移至最高位
}
}
另外该程序一共出现了多处相同的警告,都是跟有运算的参数相关。最终也能正常下载运行
".\Objects\SPI-7-AI8051U-32Bit" - 0 Error(s), 9 Warning(s).
希望大家帮我解答下这个困惑的问题,谢谢
|
|