找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1586|回复: 2
打印 上一主题 下一主题
收起左侧

关于2.4G无线传输的一个函数对一个地址强制转换不能理解

[复制链接]
跳转到指定楼层
楼主
ID:506700 发表于 2021-4-25 16:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1黑币
const u8 TX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //发送地址

const u8 RX_ADDRESS[RX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01};


u8 NRF24L01_Write_Buf(u8 reg, u8 *pBuf, u8 len)
{
        u8 status,u8_ctr;            
         NRF24L01_CSN = 0;          //使能SPI传输
          status = SPI2_ReadWriteByte(reg);//发送寄存器值(位置),并读取状态值
          for(u8_ctr=0; u8_ctr<len; u8_ctr++)SPI2_ReadWriteByte(*pBuf++); //写入数据         
          NRF24L01_CSN = 1;       //关闭SPI传输
          return status;          //返回读到的状态值
}                                   


void NRF24L01_TX_Mode(void)
{                                                                                                                 
        NRF24L01_CE=0;            
          NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH);//写TX节点地址
          NRF24L01_Write_Buf(NRF_WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH); //设置TX节点地址,主要为了使能ACK         


          NRF24L01_Write_Reg(NRF_WRITE_REG+EN_AA,0x01);     //使能通道0的自动应答   
          NRF24L01_Write_Reg(NRF_WRITE_REG+EN_RXADDR,0x01); //使能通道0的接收地址  
          NRF24L01_Write_Reg(NRF_WRITE_REG+SETUP_RETR,0x1a);//设置自动重发间隔时间:500us + 86us;最大自动重发次数:10次
          NRF24L01_Write_Reg(NRF_WRITE_REG+RF_CH,40);       //设置RF通道为40
          NRF24L01_Write_Reg(NRF_WRITE_REG+RF_SETUP,0x0f);  //设置TX发射参数,0db增益,2Mbps,低噪声增益开启   
          NRF24L01_Write_Reg(NRF_WRITE_REG+CONFIG,0x0e);    //配置基本工作模式的参数;PWR_UP,EN_CRC,16BIT_CRC,接收模式,开启所有中断
        NRF24L01_CE=1;//CE为高,10us后启动发送
}

不能理解这代码里面红色注释的数组,这个数组名本来就表示数组首地址也属于一个指针,为什么在TX_Mode函数中(u8*)TX_ADDRESS还要强制转换类型呢?不能直接用TX_ADDRESS吗?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:693038 发表于 2021-4-26 14:20 | 只看该作者
可以直接用TX_ADDRESS,只是编译器编译时会警告,有点编译器则直接提示数据类型错误,无论是否强制转换其实这里传进去的只是一个首地址,函数内部取数据时会进行数据转换
回复

使用道具 举报

板凳
ID:388197 发表于 2021-4-26 15:34 | 只看该作者
这个一般是避免报警或者报错,比如常用的
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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