at89 发表于 2015-3-27 16:47:37

NRF24L01宏定义与实际值不一致

stm32f103ze的板子,查看发送失败的错误代码时发现与宏定义的不一致,宏定义如下
#define MAX_TX      0x10
#define TX_OK       0x20
#define RX_OK       0x40
但是我串口读出来的对应十六进制数据是
TX_OK=40,MAX_TX=20,RX_OK =100
诸位可曾遇到过宏定义的不对应的情况。


bit 发表于 2015-3-27 18:01:01

靠 这都有啊

at89 发表于 2015-3-27 18:13:56

bit 发表于 2015-3-27 18:01
靠 这都有啊

啥,好奇怪的问题是吧,我也是醉了

左岸右岸 发表于 2015-3-27 19:35:10

的确很奇怪;P

mark0668 发表于 2015-3-28 00:11:06

这问题可大了……

木木鱼 发表于 2015-3-28 08:42:35

不懂帮顶

发表于 2015-3-28 09:55:57

应该不会的,楼主发一下工程或者数据传输的代码。

at89 发表于 2015-3-28 11:35:25

安 发表于 2015-3-28 09:55
应该不会的,楼主发一下工程或者数据传输的代码。

因为用到了无线模块数据的发送和接收,所以增加了一个对发送状态的定义,代码都是很简单的串口发送和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

发表于 2015-3-28 14:12:48

printf输出的数据是什么样的

发表于 2015-3-28 14:12:53

printf输出的数据是什么样的
页: [1] 2 3
查看完整版本: NRF24L01宏定义与实际值不一致