simplorer 发表于 2011-4-27 16:17:31

第一次使用IAR for AVR进行RFID项目的一些困惑及总结,给后来者一些警示(附RC522官方程

很小的一个项目,利用mega88的SPI口读写RC522数据,然后利用串口与上位机通讯,程序不复杂,串口的程序修改自原来的51程序,但是声明了局部数组变量后,发送的数据总是乱码,开始以为是串口程序有问题,一遍遍排除,最后没办法,把数组声明为全局变量,成功,然后上网查找资料,说是cstack设置太小,改到了0x64,这个问题解决了。
然后是射频部分,无论是网上找到的各种版本还是NXP的原厂程序,均无法运行,最后决定但不执行原厂程序,这样比较放心,最后发现问题出在函数返回上,Select函数返回前,变量status的值为0x0001,及超时错误,RC522没有扫到卡,但是函数调用后,返回的值竟然一直是0x0000,造成整个程序运行错误,上网找资料,还是cstack的问题,最后修改到0x200,至此程序工作正常。
射频部分是第一次接触,从未想到IAR编译器会出这么多问题,所以一直认为是RC522的配置不正确,手头没有仿真器,一遍遍下载,最后设置把每个寄存器的值读出来,然后串口输出,判断与写入的值是否一致,但是不知道对错(RC522不熟悉,完全陌生)。
期间怀疑是下载的程序有问题,上网注_册下载各种版本的RFID程序,都行不通,最后才想到还是官方的程序可靠。

用过C51,ARM,TI DSP,可能是熟悉的缘故,从未出现编译器本身的问题造成程序出错,所以一直没有往这方面想,耽误了大把的时间,作为一个警示吧,希望后来者引以为戒。

令我至今困惑的是,我使用的局部变量并不多,数组都放到了全局变量,为什么cstack还要设置为0x200这么大,整个程序才能正常运行,困惑,请高手指教。

点击此处下载 ourdev_634402T8XDQD.rar(文件大小:209K) (原文件名:MFRC522.rar)

zzw223226 发表于 2011-9-6 15:30:24

我也下过了很多资料,但只是知道了怎么写进去,对于初始化,那些该先写那些后写不清楚。。。而且我手上拿到的是RC600。。。瞎了。。难道是522把那些电压管脚都接到一块去了???对于网上的那么编程习惯很不熟悉。。。。停留在初级。。。看不懂呀~~~~~

feitianwu3845 发表于 2012-6-15 09:28:26

有QQ 号码请教下大师啊

wsh 发表于 2012-7-19 14:02:20

mark                                                      

danpianjibb 发表于 2013-1-29 09:57:01

mark !!!!!!!!!!

mysunmax 发表于 2013-1-29 10:10:27

mark         

lzh7735 发表于 2013-1-29 11:38:17

建议除全局变量及RSTACK之外的剩余RAM全部分配给CSTACK,程序运行时产生多少中间临时变量,需要多少空间不太确定,把剩余的RAM都给CSTACK是不会错的。

lzh7735 发表于 2013-1-29 11:39:29

从事单片机开发以来一直用IAR编译器,一直都这么干,没发现过因CSTACK设置引起的问题

Bryan_Chang 发表于 2013-10-10 11:41:38

准备尝试IAR FOR AVR, 被吓到了!{:funk:}

金牛AKI 发表于 2013-10-10 11:49:44

这和编译器等等等有关系的

知行合一 发表于 2013-10-14 09:15:36

mark
                                                   

ehello 发表于 2014-1-10 13:34:20

兄弟,你的IAR-AVR88版本可否共享一下~急急急~

wsm80828 发表于 2014-1-10 22:26:52

回头看看
页: [1]
查看完整版本: 第一次使用IAR for AVR进行RFID项目的一些困惑及总结,给后来者一些警示(附RC522官方程