你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F745IG SRAM 读写问题

[复制链接]
幻影武者 提问时间:2016-7-26 14:22 /
你好,很荣幸用了STM32F745IG,感觉这是一款比较强大,比较好用的一款。
        不过在开发过程中碰到了一点小小的疑惑,在强大的STM面前我还只是菜鸟,希望能指引我走向强者之路:
        问题:参考开发包移植了SRAM ,可是 如果使用如下代码,用示波器量不出读信号.回读回来的也是写入的数据,不过是没有读信 号的回读.
                    atempaddr = (uint8_t *)(DPRAM_LEDBASE + i);
                *(__IO uint8_t  *) atempaddr = 0;
                sl_val =*(__IO uint8_t  *) atempaddr ;
                但是改成了           
                HAL_SRAM_Write_8b(&hsram,(uint32_t *) atempaddr,  &val, 1);
                HAL_SRAM_Read_8b(&hsram, (uint32_t *)atempaddr, &read_val, 1);                结果就成功了,我真是感慨啊,贵公司的函数果然是精品了,应该是我的理解能力有限,希望能给我解惑!
           
        致敬!

收藏 评论6 发布时间:2016-7-26 14:22

举报

6个回答
乞丐工程师 回答时间:2016-7-29 09:28:23
月痕-338170 回答时间:2016-7-29 13:35:35
uint8_t --> uint32_t,试试
moyanming2013 回答时间:2016-7-29 21:06:45
本帖最后由 moyanming2013 于 2016-7-29 21:07 编辑

官方代码中使用的是uint32_t*,你用的是uint8_t*,如果考虑数据真实到底是多大的话,可能你获取的是高字节的0x00或其它随机值,而实际上atempaddr指向的是一个32位的uint32_t。
实际就是注意大小端和数据大小。
  1. HAL_SRAM_Write_8b(&hsram,(uint32_t *) atempaddr,  &val, 1);
复制代码
SZHYK 回答时间:2016-8-1 19:42:55
签到签到。
romberg 回答时间:2016-8-11 11:38:15
uint8_t 改 uint32_t试试看

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 神马都是浮云

查看全部评分

任风吹吹 回答时间:2016-8-11 12:12:05
romberg 发表于 2016-8-11 11:38
uint8_t 改 uint32_t试试看

估计这个是正解,uint8_t 这种方式不确定MCU是否真正有操作。
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版