sram实验中uv8*

2019-10-15 20:56发布

//在指定地址(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中,不会写到内部地址中去?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
卡塔之魂
1楼-- · 2019-10-15 23:42
魂萦xy 发表于 2016-12-29 20:13
我是想问为什么要uv8而不是uv32?转换成8位不就是8位的地址了吗?

地址还是32位的,强制转换之后,只是这个地址指向的变量的属性变了。
taizonglai
2楼-- · 2019-10-16 03:42
谁说的8位的地址只能写到内部SRAM中?!!!写到哪个RAM中是根据你要写的地址来决定的!
魂萦xy
3楼-- · 2019-10-16 06:28
zuozhongkai 发表于 2016-12-29 18:33
谁说的8位的地址只能写到内部SRAM中?!!!写到哪个RAM中是根据你要写的地址来决定的!

我是想问为什么要uv8而不是uv32?转换成8位不就是8位的地址了吗?
魂萦xy
4楼-- · 2019-10-16 11:04
zuozhongkai 发表于 2016-12-29 18:33
谁说的8位的地址只能写到内部SRAM中?!!!写到哪个RAM中是根据你要写的地址来决定的!

谢谢!我懂了,对于32位机指针本身永远是32位的,vu8是指指针指向的地址上的数据是vu8类型的。
卡塔之魂
5楼-- · 2019-10-16 12:46
 精彩回答 2  元偷偷看……

一周热门 更多>