
STM32F0 系列单片机,指针取整型值错误,用F0的进来看下,代码如下,附件里也有个工程可以下来单步运行下,这是什么问题如何解决. uint8_t a[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; //定义a 数组 int main(void){ uint32_t*b=0; //指针b uint32_t cc; //临时变量 b=(uint32_t*)(a+1); //给a的指针地址+1他 cc =*b; //取值这步运行就出错 //如果程序没出错cc的值应该为0x04030201, 但取值就出错 if(cc == 1)cc=0; while(1){ } } |
STM32F051.rar
下载302.05 KB, 下载次数: 1, 下载积分: ST金币 -1
è¿æ¯F0空工ç¨å å½ä¸é¢ç代ç .
地址不是要考虑对齐的问题#还是说8位不用考虑这个问题
你定义的 a 数组,链接器应该是将其对齐到了 32 位(或 16 位)地址,那么 a + 1 的地址,显然不满足访问的总线约束。
应该就是这问题了,M0的问题,M4 执行这代码是没有问题的.
说的真好,拍拍手