u16 STMFLASH_ReadHalfWord(u32 faddr)
{
return *(vu16*)faddr;
}
想请教一个问题,在FLASH章节里面有个读取半字的函数。
这个函数中*(vu16*)faddr该怎么理解呢,32的数据强制转换为16位的地址,在取这个16位地址的值。问题是例如faddr为0X00000004,那么转换为16的地址,应该是低16位,也就是此时的地址0X0004,再取这个地址的值,那这样永远都读取不到faddr高16的数。还是如果我想读取faddr高16的数,就应该读0X00000002,就是faddr前16位,才能读到faddr的高16位呢。谢谢了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一个地址存储的数据数一个字节,你16位的数据在存储的时候就会占用两个地址(16位数据=2个字节)
一周热门 更多>