您的位置:首页 > 文旅 > 旅游 > 昆明抖音代运营_郑州微信公众号外包_网页制作代码html制作一个网页_收录好的网站有哪些

昆明抖音代运营_郑州微信公众号外包_网页制作代码html制作一个网页_收录好的网站有哪些

2025/1/9 10:23:31 来源:https://blog.csdn.net/2301_80596293/article/details/145012065  浏览:    关键词:昆明抖音代运营_郑州微信公众号外包_网页制作代码html制作一个网页_收录好的网站有哪些
昆明抖音代运营_郑州微信公众号外包_网页制作代码html制作一个网页_收录好的网站有哪些

前言

环境:接之前的两篇

芯片:STM32F103C8T6

Keil:V5.24.2.0


一、发射初始化

经过之前的验证,证明了硬件和基本的通信没问题,接下来进入发送端调试

发送初始化代码:

void NRF24l01_tx_mode(void)
{NRF24L01_CE(0);NRF24l01_write_buf(NRF_WRITE_REG + TX_ADDR, (uint8_t *)TX_ADDRESS, TX_ADR_WIDTH);       /* 写TX节点地址 */NRF24l01_write_buf(NRF_WRITE_REG + RX_ADDR_P0, (uint8_t *)RX_ADDRESS, RX_ADR_WIDTH);    /* 设置RX节点地址,主要为了使能ACK */nrf24l01_write_reg(NRF_WRITE_REG + CONFIG, 0x0f);                                       /* 配置基本工作模式的参数;PWR_UP,EN_CRC,16BIT_CRC,接收模式,开启所有中断 */nrf24l01_write_reg(NRF_WRITE_REG + RF_CH, 00);                                          /* 设置RF通道为00 */nrf24l01_write_reg(NRF_WRITE_REG + EN_AA, 0x01);nrf24l01_write_reg(NRF_WRITE_REG + RX_PW_P0, 32);                                        /* 使能通道0的自动应答 */nrf24l01_write_reg(NRF_WRITE_REG + EN_RXADDR, 0x01);                                    /* 使能通道0的接收地址 */nrf24l01_write_reg(NRF_WRITE_REG + SETUP_RETR, 0x1A);//1a                                   /* 设置自动重发间隔时间:500us + 86us;最大自动重发次数:10次 */nrf24l01_write_reg(FLUSH_RX, 0xFF);NRF24L01_CE(1);                                                                      /* CE为高,10us后启动发送 */}

二、数据发送

1.发送的数据

        uint8_t tx_Buf[32]={0x23,0x66,0x66,0x66,0x66,0x66};

这个数据可以随便设置,但是调试时尽量使用16进制.

2.发送的代码

uint8_t NRF24l01_tx_packet(uint8_t *ptxbuf)
{uint8_t sta;uint8_t rval = 0XFF;NRF24l01_write_buf(WR_TX_PLOAD, ptxbuf, TX_PLOAD_WIDTH);    /* 写数据到TX BUF  TX_PLOAD_WIDTH个字节 */NRF24L01_CE(0);  nrf24l01_write_reg(NRF_WRITE_REG + CONFIG, 0x0e);  NRF24L01_CE(1);                                             /* 启动发送 */while (MySPI_Read_IRQ() != 0);                                  /* 等待发送完成 */sta = nrf24l01_read_reg(NRF_READ_REG + STATUS);                            /* 读取状态寄存器的值 */if (sta & MAX_TX)                                           /* 达到最大重发次数 */{nrf24l01_write_reg(FLUSH_TX, 0xff);                     /* 清除TX FIFO寄存器 */nrf24l01_write_reg(NRF_WRITE_REG + STATUS, sta);            /* 清除TX_DS或MAX_RT中断标志 */rval = 1;}if (sta & TX_OK)                                            /* 发送完成 */{nrf24l01_write_reg(NRF_WRITE_REG + STATUS, sta);            /* 清除TX_DS或MAX_RT中断标志 */rval = 0;                                               /* 标记发送成功 */}return rval;                                                /* 返回结果 */
}

3.结果的验证

					if (NRF24l01_tx_packet(tx_Buf) == 0)   /* 发送成功 */{i++;OLED_ShowString(i, 10, "OK", OLED_6X8);GPIO_ResetBits(GPIOC, GPIO_Pin_13);}else{OLED_ShowString(70, 10, "NG", OLED_6X8);GPIO_SetBits(GPIOC, GPIO_Pin_13);}

 验证逻辑简单,可以设置个LED进行显示就行.


总结

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com