蛋定 发表于 2018-12-26 14:49:39

求大侠指点:keil中,N76E003的xdata,为何不能用在函数中传递

如《图一》所示,数组定义:

UINT8xdata UART_BUFFER;

在调用图二的函数时,发现不能获取正确的数值,求高手指点迷津。

cmd的值发现不对,不是取到UART_BUFFER的值。


图一





图二



bblythe2017 发表于 2018-12-26 15:15:39

本帖最后由 bblythe2017 于 2018-12-26 15:16 编辑

写法很low ,按下面的试试。

cmd = *buf;

cmd1=*(buf+1);

cmd2=*(buf+2);

蛋定 发表于 2018-12-26 20:43:12

记录下,真正的原因是这里的设置导致的:

myxiaonia 发表于 2018-12-26 22:52:07

51用指针是要好好考虑考虑的

WOSDAIZ 发表于 2018-12-27 03:21:32

蛋定 发表于 2018-12-26 20:43
记录下,真正的原因是这里的设置导致的:

請問下樓主,003不能用無源晶振,你UART是用有源晶振?或是用003內建的,內建的調適好後穩定度如何?

qinxg 发表于 2018-12-27 08:22:41

看下汇编代码, 贴出来就明白了

蛋定 发表于 2018-12-27 10:26:29

WOSDAIZ 发表于 2018-12-27 03:21
請問下樓主,003不能用無源晶振,你UART是用有源晶振?或是用003內建的,內建的調適好後穩定度如何? ...

没用外部晶振,我也不熟悉这个,刚开始用啊,你看看例程,例程里很全面

蛋定 发表于 2018-12-27 10:28:08

再记录下教训:xdata 的区域,定义300个字节,发现在202开始不能操作了,最后解决是删除其他的xdata里的数组,本来是768个字节,为何不能用呢,感到到奇怪。
页: [1]
查看完整版本: 求大侠指点:keil中,N76E003的xdata,为何不能用在函数中传递