请教CC2500中GDO0的使用

sunnysmy 2009-08-23 04:59:17

void RFSendPacket(char *txBuffer, char size)
{
TI_CC_SPIWriteBurstReg(TI_CCxxx0_TXFIFO, txBuffer, size); // Write TX data
TI_CC_SPIStrobe(TI_CCxxx0_STX); // Change state to TX, initiating
// data transfer

以下两句的作用不明 白?????????????????GDO0是如何与发送同步的?????????????????
执行程序到这里的时候就一直在while(),不能走下去了~~

while (!(TI_CC_GDO0_PxIN&TI_CC_GDO0_PIN));
// Wait GDO0 to go hi -> sync TX'ed
while (TI_CC_GDO0_PxIN&TI_CC_GDO0_PIN);
// Wait GDO0 to clear -> end of pkt
}
...全文
855 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zeroflqf001 2012-05-15
  • 打赏
  • 举报
回复
有点道理
godwoo 2012-05-14
  • 打赏
  • 举报
回复
楼主的死循环问题解决了么?如何解决的?小弟现在也遇到了这样的问题,程序死在while(!GDO0)上,读CC1101寄存器,发现正确配置CC1101,用示波器量CC1101引脚输出,其他都正常,包括上电时GDO0都能正常输出135KHz方波,就是初始化以后一直为低电平,不知道为什么,调了好几天了,郁闷
venusbloom 2009-12-06
  • 打赏
  • 举报
回复
也是关于这个程序,程序是由开关控制灯亮/灭。每次只发送了buffer[2]一个字节;
现在想要一次发送多个字节(发送多个数组),比如每次发送buffer[2]、buffer[3]、buffer[4]......要怎么改呢?为什么怎么改都不成功
lmlmlmnew 2009-09-16
  • 打赏
  • 举报
回复
在你初始化寄存器时,你会设定一个GDO0功能的寄存器,GDO0有很多很多的功能,其中一项就是在无法送状态时GDO0保持在低电平,当有执行发送命令时变成高电平,当将数据包的最后一个自己发送出去后又变回低电平了。
你出现这种情况的原因就是没配置好寄存器,请用SMARTRF把对应寄存器配置好!
dding 2009-09-15
  • 打赏
  • 举报
回复
从代码上直接来看应该是设置了FIFO的门槛值,用于监测FIFO里面数据多少的状态,这个状态可以反应到硬件的PIN脚上面,这个应该是用CPU的GPIO脚去检测CC的脚的电平

3,848

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 无线
社区管理员
  • 无线
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧