xiatianzhang
发表于 2012-11-2 08:42:32
qiuchen
发表于 2012-11-7 16:16:07
没看懂问什么
xiatianzhang
发表于 2012-11-7 17:04:19
qiuchen
发表于 2012-11-8 09:14:35
截图有点看不清楚,我猜可能是因为你的全局变量没有应用,被编译器自动优化掉了。你可以把这个变量随便写入到一个没用的寄存器里面,这个数组只要用到一个就可以。
xiatianzhang
发表于 2012-11-8 11:48:10
gdmgb520
发表于 2012-11-8 12:10:36
xiatianzhang 发表于 2012-11-8 11:48 static/image/common/back.gif
我应用的 在串口接收数据呀
1.没太看懂。是说你上位机调试工具收到的数据都正确了,但是仿真看不到单片机里接收到的数据?
2.关于数组是否被引用,你串口接收数据只是往里写,但是并没有在别的地方调用(引用=read)该数据。
xiatianzhang
发表于 2012-11-8 12:32:54
gdmgb520
发表于 2012-11-8 13:20:39
xiatianzhang 发表于 2012-11-8 12:32 static/image/common/back.gif
第一: 我单片机接收到了正确的信息了。但是我仿真看不到单片机里接收到的数据。
第二:我数组被引用的, ...
Uart0_Data_Buffer = RXBUF0 - 0x30;
把断点停在这条语句之前看看。
RXBUF0是430的寄存器吗?
串口接收寄存器是不是读取后自动清零啊?
最好是进中断后使用 一个临时变量先读取串口缓存的内容再从这个变量中取数据做其他用途。
xiatianzhang
发表于 2012-11-8 13:50:25
qiuchen
发表于 2012-11-8 14:25:58
你只是用这个数组接收数据,IAR会默认为这个数组是没用的。你可以把这个数组里面的一个随便写到一个没用的寄存器里面,比如一个P2OUT。
xiatianzhang
发表于 2012-11-10 14:13:16
qiuchen
发表于 2012-11-12 10:01:04
如果是程序中有调用的话,应该是不会被优化掉的;另外看看你有没有选择优化代码。
而且你可以把数据显示的方式换成十六进制的看看。
页:
[1]