你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
address定义是32位的
在对address指向的位置赋值时却将address转成了16位
举报
查看全部评分
xmshao 发表于 2016-3-24 23:24 用(_IO uint16_t*)将address强制转换成了一个16位数的地址,这里很不理解为什么要转成16位的。实验改成32 ...
===>应该说 (_IO uint16_t*)address 将Address强制转换为一个指针,该指针指向的数据为 uint16_t,并非address转成16位了。这是C语言要了解的。
另外,你如果把改写为(_IO uint32_t*)address 写入失败是正常的,因为有些STM32芯片只支持半字编程,比如STM32F1. 有的支持半字、字等,要具体看芯片FLASH PROGRAMMING MANUAL. 这是STM32手册要了解的。
评分
查看全部评分
一语惊醒