OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4476|回复: 1

一个32板子,一个STC15F2K60S2单片机控制无线通讯

[复制链接]

7

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-9-11
在线时间
0 小时
发表于 2014-10-15 22:06:22 | 显示全部楼层 |阅读模式
5金钱
两个芯片之间通讯不成功,猜测匹配不成功,求通讯需要匹配的参数,还有是用哪个寄存器,寄存器哪个位怎么设置来配置。
还有是否要关闭自动应答,禁用发送完成中断和接收完成中断,它本来给的两个例子以上设置不同,不知道怎么改。


下面是STC15F2K60S2的接收模式设置:

void n1PA_Dev_Init(void)
{
    n1PA_Pin_CE = 0;                                                                            // CE置低,进入待机模式
    n1PA_SPI_W_Reg_Byte(n1PA_CMD_W_REGISTER | n1PA_REG_CONFIG,      n1PA_RCD_TX_DS_DI           // 禁用发送完成中断
                                                                  | n1PA_RCD_MAX_RT_DI          // 禁用发送超时中断
                                                                  | n1PA_RCD_CRC_EN             // 启用CRC
                                                                  | n1PA_RCD_CRC16              // CRC16
                                                                  | n1PA_RCD_PWR_UP             // 上电模式
                                                                  | n1PA_RCD_PRIM_PRX);         // RX模式
    n1PA_SPI_W_Reg_Byte(n1PA_CMD_W_REGISTER | n1PA_REG_EN_AA,       n1PA_RCD_ALL_PIPE_AA_DI);   // 关闭自动应答
    n1PA_SPI_W_Reg_Byte(n1PA_CMD_W_REGISTER | n1PA_REG_EN_RXADDR,   n1PA_RCD_PIPE0_RX_EN);      // 使能接收通道0
    n1PA_SPI_W_Reg_Byte(n1PA_CMD_W_REGISTER | n1PA_REG_SETUP_AW,    n1PA_RCD_AW_5byte);         // 设置RX地址宽度
    n1PA_SPI_W_Reg_Byte(n1PA_CMD_W_REGISTER | n1PA_REG_SETUP_RETR,  n1PA_RCD_ARC_DI);           // 禁用自动重发
    n1PA_SPI_W_Reg_Byte(n1PA_CMD_W_REGISTER | n1PA_REG_RF_CH,       n1PA_RF_CH);                // 设置射频通道
    n1PA_SPI_W_Reg_Byte(n1PA_CMD_W_REGISTER | n1PA_REG_RF_SETUP,   n1PA_RCD_RF_DR_2Mbps      // 设置传输速率为250kbps
                                                                  | n1PA_RCD_RF_PWR_22dBm);     // 发射功率为+22dBm
    n1PA_SPI_W_Reg_Byte(n1PA_CMD_W_REGISTER | n1PA_REG_RX_PW_P0,    n1PA_DATA_WIDTH);           // 设置RX通道0数据宽度

    n1PA_SPI_W_Reg_Burst(n1PA_CMD_W_REGISTER | n1PA_REG_RX_ADDR_P0, n1PA_RF_Addr, n1PA_ADDR_WIDTH); // 设置RX通道0地址
    n1PA_SPI_W_Cmd_Byte(n1PA_CMD_FLUSH_RX);                                                     // 清空RXFIFO
    n1PA_Pin_CE = 1;                                                                            // CE置高,进入运行模式
}
下面是32的设置
void NRF24L01_RX_Mode(void)
{
NRF24L01_CE=0;  
  NRF24L01_Write_Buf(NRF_WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);//写RX节点地址
 
  NRF24L01_Write_Reg(NRF_WRITE_REG+EN_AA,0x00);     //使能通道0的自动应答    
  NRF24L01_Write_Reg(NRF_WRITE_REG+EN_RXADDR,0x01); //使能通道0的接收地址    
  NRF24L01_Write_Reg(NRF_WRITE_REG+RF_CH,0);     //设置RF通信频率  
  NRF24L01_Write_Reg(NRF_WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);//选择通道0的有效数据宽度    
  NRF24L01_Write_Reg(NRF_WRITE_REG+RF_SETUP,0x0e); //设置TX发射参数,0db增益,2Mbps,低噪声增益开启   
  NRF24L01_Write_Reg(NRF_WRITE_REG+CONFIG, 0x0f); //配置基本工作模式的参数WR_UP,EN_CRC,16BIT_CRC,接收模式 
  NRF24L01_CE = 1; //CE为高,进入接收模式 
}  


求看看怎么改


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-15 23:11:54 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-30 06:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表