本帖最后由 d1z1y2 于 2017-5-26 00:47 编辑
void STMFLASH_Write(u32 WriteAddr,u16 *pBuffer,u16 NumToWrite)
注释是这样的:
//从指定地址开始写入指定长度的数据
//WriteAddr:起始地址(此地址必须为2的倍数!!)
//pBuffer:数据指针
//NumToWrite:半字(16位)数(就是要写入的16位数据的个数.)
我的问题是:NumToWrite这个参数的大小,比如我写入一个数组 u8 a[2]={0,1};到Falsh,那么这个NumToWrite取多大啊,是2? 还是1? 按我的理解应该是1,因为写的是“半字数”,而不是“字节数”.但是按例程里面写法是2。
比如下面写法有什么区别,
#define FLASH_ADD_dat1_Test 0x0801FD20
#define FLASH_ADD_dat2_Test 0x0801FD22
u8 dat1[]={0x12,0x34};
u8 dat2[]={0x56,0x78};
STMFLASH_Write(FLASH_ADD_dat1_Test, (u16*)dat1, 1);
STMFLASH_Write(FLASH_ADD_dat2_Test, (u16*)dat2, 2);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>