你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
FLASH的读写,移植原子的例程,但出错
[复制链接]
davidhuang-1788
提问时间:2020-1-18 10:55 /
FLASH的读写,我移植原子的例程(见附件),我用的是STM32F103C8T6,原子用的是STM32F103RC,
请教下大家,谢谢
ALIENTEK MINISTM32 å®éª26 FLASH模æEEPROMå®éª.rar
(9.07 MB, 下载次数: 3)
2020-1-18 10:31 上传
点击文件名下载附件
我的程序,可以从下面的链接
【新提醒】FLASH读写,copy原子的例程,不行-OpenEdv-开源电子网
http://www.openedv.com/thread-305310-1-1.html
//要写入到STM32 FLASH的字符串数组
unsigned char Data_Buffer[4];
#define SIZE sizeof(Data_Buffer) //数组长度
#define FLASH_SAVE_ADDR 0X08020000 //设置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[4]=Data_Buffer[0]; modbus.sendbuf[5]=Data_Buffer[1];
modbus.sendbuf[6]=Data_Buffer[2]; modbus.sendbuf[7]=Data_Buffer[3];
}
运行这句STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)Data_Buffer,SIZE);就会掉进
void HardFault_Handler(void)
赞
0
收藏
0
评论
3
分享
发布时间:2020-1-18 10:55
举报
请先
登录
后回复
3个回答
衔胆栖冰
回答时间:2020-1-19 10:26:04
a8a.1 32b0c
最佳答案: 数组越界!Data_Buffer[4]; #define SIZE sizeof(Data_Buffer) for(i=0;i<NumToRead;i++) ReadAddr+=2; 看到了吗,四个字节大小的数组,塞了八个字节数据,越界hardfault。代码千万行,规范第一条。
评分
参与人数
1
蝴蝶豆
+2
收起
理由
STMCU
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
衔胆栖冰
回答时间:2020-1-19 10:27:18
a8a.1 32b0c
u16 *pBuffer,
赞
0
评论
回复
支持
反对
衔胆栖冰
回答时间:2020-1-19 10:28:27
a8a.1 32b0c
unsigned char Data_Buffer[4];
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
评分
查看全部评分