本帖最后由 15242026 于 2013-2-4 17:25 编辑
使用的是CC1121 (CC1120,CC1125)模拟的SPI,CSn片选拉低,SO持续高电平。(SO是相对于CC1121上的来说的)
根据官方文档 官方给出的代码,当片选脚 CSn拉低时,检测到SO的低电平,才表示晶振稳定,才能进行数据读写。
但是我把CSn拉低后,SO持续高电平。
因为使用的是模拟的SPI,就是普通的GPIO口,初始化GPIO检查过,输入输出的配置没有问题,输入SO口各种配置都用过了,还是读不到SO的低电平。MCU用的是 STM32F103的片子。搞了一星期了,不知道什么问题,在论坛上也没有收索到类似问题,貌似就我一人碰到。希望得到大侠指教。
代码也很简单,当初始化GPIO完成后,
。。。。
。。。。
set_gpio_low(gpio_CSn);
while(read_gpio_value(gpio_SO)); //然后就一直死在死循环处。
。。。
。。。。
。。。。
如果注释掉死循环,等delayMs(X);几个毫秒的的时延,把数据写进去,然后读出来还是不行的。是0xFF.
————————————————————————————————————————————————————————————————————————————
————————————————————————————————————————————————————————————————————————————
找到问题了,是复位脚电平要拉高。才能够正常工作。
|