FLASH的读写,移植原子的例程,但出错
FLASH的读写,我移植原子的例程(见附件),我用的是STM32F103C8T6,原子用的是STM32F103RC,请教下大家,谢谢
我的程序,可以从下面的链接
【新提醒】FLASH读写,copy原子的例程,不行-OpenEdv-开源电子网http://www.openedv.com/thread-305310-1-1.html
//要写入到STM32 FLASH的字符串数组
unsigned char Data_Buffer;
#define SIZE sizeof(Data_Buffer) //数组长度
#define FLASH_SAVE_ADDR0X08020000 //设置FLASH 保存地址(必须为偶数,且其值要大于本代码所占用FLASH的大小+0X08000000
void STMFLASH_Read(u32 ReadAddr,u16 *pBuffer,u16 NumToRead)
{
u16 i;
for(i=0;i<NumToRead;i++)
{
pBuffer=STMFLASH_ReadHalfWord(ReadAddr);//读取2个字节.
ReadAddr+=2;//偏移2个字节.
}
}
void InitVariable(void)//全局变量初始化函数
{
STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)Data_Buffer,SIZE);
modbus.sendbuf=Data_Buffer; modbus.sendbuf=Data_Buffer;
modbus.sendbuf=Data_Buffer; modbus.sendbuf=Data_Buffer;
}
运行这句STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)Data_Buffer,SIZE);就会掉进
void HardFault_Handler(void)
最佳答案: 数组越界!Data_Buffer; #define SIZE sizeof(Data_Buffer) for(i=0;i<NumToRead;i++)ReadAddr+=2; 看到了吗,四个字节大小的数组,塞了八个字节数据,越界hardfault。代码千万行,规范第一条。 u16 *pBuffer, unsigned char Data_Buffer;
页:
[1]