//在指定地址(WriteAddr+Bank1_SRAM3_ADDR)开始,连续写入n个字节.
//pBuffer:字节指针
//WriteAddr:要写入的地址
//n:要写入的字节数
void FSMC_SRAM_WriteBuffer(u8* pBuffer,u32 WriteAddr,u32 n)
{
for(;n!=0;n--)
{
*(vu8*)(Bank1_SRAM3_ADDR+WriteAddr)=*pBuffer;
WriteAddr++;
pBuffer++;
}
}
请问地址(Bank1_SRAM3_ADDR+WriteAddr)为什么要强制转化为(uv8*)而不是(uv32*)?8位的地址为什么还能写到外部sram中,不会写到内部地址中去?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
地址还是32位的,强制转换之后,只是这个地址指向的变量的属性变了。
我是想问为什么要uv8而不是uv32?转换成8位不就是8位的地址了吗?
谢谢!我懂了,对于32位机指针本身永远是32位的,vu8是指指针指向的地址上的数据是vu8类型的。
一周热门 更多>