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条回答
youxi8745
1楼-- · 2019-07-16 11:04
不懂帮顶
youxi8745
2楼-- · 2019-07-16 14:43
 精彩回答 2  元偷偷看……
sasasa211
3楼-- · 2019-07-16 16:30
绝笔程序有问题
微笑的绽放
4楼-- · 2019-07-16 20:21
TOPCB 发表于 2018-9-18 21:48
printf输出的数据是什么样的

printf("Sended DATA: ");      
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 ",TX_OK,MAX_TX,RX_OK );

TX_OK=40,MAX_TX=20,RX_OK =100
微笑的绽放
5楼-- · 2019-07-16 23:13
云淡风轻丶 发表于 2018-9-18 22:01
哎。。我双机通信失败

那是串口的问题喽,你看看上位机那边设置有没有问题,如果接受数据在条但是没有显示应该是波特率错了,看看数据位停止位之类的,要不程序贴出来,串口应该比SPI的简单点
微笑的绽放
6楼-- · 2019-07-17 00:15
冬冬5241 发表于 2018-9-18 22:30
printf(&amp;quot;%c&amp;quot;,tmp_buf);  printf(&amp;quot;EORROR CODE=%o &amp;quot;,NRF24L01_TxPacket(tmp_buf));                        
一会 %c,一会%o ,你要输出什么数据呢?

两种情况啦
printf("Sended DATA: ");      
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 ",TX_OK,MAX_TX,RX_OK );

TX_OK=40,MAX_TX=20,RX_OK =100

一周热门 更多>