FSMC接口配置为16位宽度
8位写如下:
Uint08 volatile *Test1,*Test2;
Test1=(Uint08 *)0x68000000;
*Test1++=0x55;
每次写完,Test1地址加1,结果完全正确。
16位写如下:
Uint16 volatile *Test1,*Test2;
Test1=(Uint16 *)0x68000000;
*Test1++=0x5555;
每次写,在第1第2个字节都写入0x55,第3第4个字节写0x00,写完后Test1地址加4,而不是加2。
这是怎么回事?怎样才能正确的16位读写? |