本帖最后由 凉风习习 于 2016-1-30 09:21 编辑
在做一个简单的图像识别的项目,摄像像头(ov7670)采集到的帧数据储存到sram(连个8bit),处理后在送到LCD显示。
LCD显示乱码(从摄像头直接送到LCD是正常的)。考虑是大小端问题导致。
在原子教程上看到407是小端模式。于是在开发板上验证
[mw_shl_code=applescript,true] //更新LCD显示
u8 Is_bigendian()
{
u16 a=0x1257;
if(*(u8*)&a==12)
return 1; //返回1显示bigendian
if(*(u8*)&a==57)
return 0; //返回0显示littleendian
}[/mw_shl_code]
问题来了采用上面的函数显示的是大端模式。
只有这样
[mw_shl_code=applescript,true] //更新LCD显示
u8 Is_bigendian()
{
u16 a=0x1257;
if(*(u8*)&a==0x12)
return 1;
if(*(u8*)&a==0x57)
return 0;
}[/mw_shl_code]
结果才是显示的littleendian。
请高手解答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
union node
{
int a;
char b[4];
};
int main()
{
union node t;
t.a=1;
printf("%d ",t.b[0]);
printf("%d ",t.b[1]);
printf("%d ",t.b[2]);
printf("%d ",t.b[3]);
}
把int的每个字节读出来。要是第一个字节为0证明是大端模式 第一个字节为1证明是小端模式[/mw_shl_code]
一周热门 更多>