初级会员
- 积分
- 55
- 金钱
- 55
- 注册时间
- 2014-10-27
- 在线时间
- 0 小时
|
亲们,现在我正在做无线通信,普通节点这块用的是msp430+cc1101,汇聚节点这块我用的是GPRS+STM32+CC1101,目的就是将普通节点数据通过CC1101接收回来,再通过GPRS模块发送到上位机服务器上,但是问题是,为什么我的GPRS程序在中断中就无法正常连接,而在主函数上就可以正常连接,GPRS和stm32是用的串口收发,CC1101和STM32用的是spi收发,
中断函数如下:
void EXTI9_5_IRQHandler(void)
{
if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_GD2))
{
EXTI_ClearITPendingBit(EXTI_Line8); //清除LINE3上的中断标志位
if ((halSpiReadStatus(0x3B) & (0x7F))) //如果接的字节数不为0
{
if(halSpiReadStatus(0x33)&(0x80)) //CRC校验是否正确
{
length=halSpiReadReg(0x3F); //读出第一个字节为长度字节
halSpiReadReg(0x3F); //读出第二个字节,即目标地址
command=halSpiReadReg(0x3F); //读出 第三个字节,即命令字节
halSpiReadBurstReg(0x3F, rxBuffer, length-2);//读出剩余数据
halSpiStrobe(0x36); //进入空闲模式状态
halSpiStrobe(0x3A); //清空接收缓冲寄存器
halSpiStrobe(0x34); //进入接收状态
LED0=!LED0 ;
}
if(command==7)
{
sim900a_SIMInit();
sim900a_TCPLink();
sim900a_sendData(rxBuffer,length-2);
}
}
}
至于CC1101配置以及GPRS初始化应该没有多大问题! |
|