NRF24L01宏定义与实际值不一致

2019-07-14 17:38发布

STM32f103ze的板子,查看发送失败的错误代码时发现与宏定义的不一致,宏定义如下
#define MAX_TX      0x10  
#define TX_OK       0x20  
#define RX_OK       0x40  
但是我串口读出来的对应十六进制数据是
TX_OK=40,MAX_TX=20,RX_OK =100
诸位可曾遇到过宏定义的不对应的情况。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
微笑的绽放
1楼-- · 2019-07-15 00:54
Abby0127 发表于 2018-9-18 20:09
靠 这都有啊

啥,好奇怪的问题是吧,我也是醉了
HengDu
2楼-- · 2019-07-15 04:48
的确很奇怪
骑猪去天山
3楼-- · 2019-07-15 06:17
这问题可大了……
jingyin58783
4楼-- · 2019-07-15 08:27
 精彩回答 2  元偷偷看……
TOPCB
5楼-- · 2019-07-15 13:11
应该不会的,楼主发一下工程或者数据传输的代码。
微笑的绽放
6楼-- · 2019-07-15 14:01
TOPCB 发表于 2018-9-18 21:07
应该不会的,楼主发一下工程或者数据传输的代码。

因为用到了无线模块数据的发送和接收,所以增加了一个对发送状态的定义,代码都是很简单的串口发送和SPI通信,没有什么问题啊。而且我调试下来发下判断条件为0x20或者是定义的TX_OK都可以通过
while(1)
                {                                                              
                       
                        printf("TX_Mode,Wait!! ");
               
                        TX_Mode();
                       
                        if(NRF24L01_TxPacket(tmp_buf)==TX_OK)
                        {
                                printf("Sended DATA: ");       
                                for(i=0;i<33;i++)
                                printf("%c",tmp_buf);

                                printf("Send success ");
                                return 0;
                        }else
                        {
                                printf("Send Failed!! ");
                                printf("EORROR CODE=%o ",NRF24L01_TxPacket(tmp_buf));                       
                                printf("TX_OK=%o,MAX_TX=%o,RX_OK =%o ",TX_OK,MAX_TX,RX_OK );
                                return 0;
                        }


之前的宏定义如下
#define MAX_TX          0x10
#define TX_OK           0x20  
#define RX_OK           0x40

一周热门 更多>