This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

有关cc254x的I/O口的使用问题

Other Parts Discussed in Thread: CC2540

最近我在用cc2540通过SPI读写Flash(SST25VF016B)时遇到了点问题,请教下!

实验环境:首先我是用cc2540裸跑的(没上协议栈),通过I/O口模拟SPI总线。代码在STC15L的51单片机上时正常的,移植到cc2540。遇到两个奇怪的问题:

问题1:我是用P1_5,P1_6和P1_7作为MOSI,CLK和MISO,当我用P1_4和P1_3作为Flash的片选CS端口时,两者均不能正常读出Flash的ID,且读出的结果不一样。而用P1_2作为CS时,可以正确地读出Flash的ID。注(P1DIR = 0x7f,除了MISO设为输入外,其他均设为输出)

问题2:在问题一种,CS采用P1_2引脚时,当P1DIR = 0x7f是,读Flash的ID正常,但如果我将P1DIR = 0x64是则,读出Flash的ID是不正确的。

问题总结:遇到的问题让我觉得片选引脚需要远离SPI总线(P1_2比P1_3/P1_4离SPI总线远些)。而且当I/O不使用时,需要设为输出,而不能设为输入(猜测是输入噪声问题)。

问题的确很奇葩,希望有经验的前辈给点提示,或提供些可参考的资料。

祝好!