你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
安 发表于 2015-3-28 09:55 应该不会的,楼主发一下工程或者数据传输的代码。
wambob 发表于 2015-3-28 19:54 printf("%c",tmp_buf); printf("EORROR CODE=%o\n",NRF24L01_TxPacket(tmp_buf)); ...
安 发表于 2015-3-28 14:12 printf输出的数据是什么样的
bit 发表于 2015-3-27 18:01 靠 这都有啊
因为用到了无线模块数据的发送和接收,所以增加了一个对发送状态的定义,代码都是很简单的串口发送和SPI通信,没有什么问题啊。而且我调试下来发下判断条件为0x20或者是定义的TX_OK都可以通过
while(1)
{
printf("TX_Mode,Wait!!\n");
TX_Mode();
if(NRF24L01_TxPacket(tmp_buf)==TX_OK)
{
printf("Sended DATA:\n");
for(i=0;i<33;i++)
printf("%c",tmp_buf);
printf("Send success\n");
return 0;
}else
{
printf("Send Failed!!\n");
printf("EORROR CODE=%o\n",NRF24L01_TxPacket(tmp_buf));
printf("TX_OK=%o,MAX_TX=%o,RX_OK =%o\n\n",TX_OK,MAX_TX,RX_OK );
return 0;
}
之前的宏定义如下
#define MAX_TX 0x10
#define TX_OK 0x20
#define RX_OK 0x40
两种情况啦
printf("Sended DATA:\n");
for(i=0;i<33;i++)
printf("%c",tmp_buf);
这个是在串口终端上输出无线传输的数据,之前定义了u8 tmp_buf[32];数据缓存区
下面那个是如果通信失败才会打出十六进制的错误代码,你看我宏定义的和输出的不一致哇
#define MAX_TX 0x10
#define TX_OK 0x20
#define RX_OK 0x40
输出的十六进制是
printf("TX_OK=%o,MAX_TX=%o,RX_OK =%o\n\n",TX_OK,MAX_TX,RX_OK );
TX_OK=40,MAX_TX=20,RX_OK =100
printf("Sended DATA:\n");
for(i=0;i<33;i++)
printf("%c",tmp_buf);
这个是在串口终端上输出无线传输的数据,之前定义了u8 tmp_buf[32];数据缓存区
下面那个是如果通信失败才会打出十六进制的错误代码,你看我宏定义的和输出的不一致哇
#define MAX_TX 0x10
#define TX_OK 0x20
#define RX_OK 0x40
输出的十六进制是
printf("TX_OK=%o,MAX_TX=%o,RX_OK =%o\n\n",TX_OK,MAX_TX,RX_OK );
TX_OK=40,MAX_TX=20,RX_OK =100
啥,好奇怪的问题是吧,我也是醉了
一会 %c,一会%o ,你要输出什么数据呢?