程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了stm32f103c8 与 nrf24 库的传输和接收问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决stm32f103c8 与 nrf24 库的传输和接收问题?

开发过程中遇到stm32f103c8 与 nrf24 库的传输和接收问题的问题如何解决?下面主要结合日常开发的经验,给出你关于stm32f103c8 与 nrf24 库的传输和接收问题的解决方法建议,希望对你解决stm32f103c8 与 nrf24 库的传输和接收问题有所启发或帮助;

我正在使用 Keil 和 CubeMX 在 stm32f103c8(bluepill)中开发我的项目,我想使用 nrf24l01 发射器,为此我寻找了一个教程,这正是我想要做的。问题是,当我这样做时,我注意到无线电收发器不发送或接收,我在互联网上看到有些人对我使用的这张卡有问题,只是我这让我无法使用这个库。我留下了一个视频链接,该视频显示了我在库之外所做的相同步骤。正是函数 nrf24_write 是不起作用的。我希望你能帮助我,因为我几天来一直试图理解为什么它不起作用。

链接视频:

https://www.youtube.com/watch?v=O2dg2Eo7vo8

链接库:

https://github.com/MYaqoobEmbedded/STM32-Tutorials/tree/master/Tutorial%2024%20-%20NRF24L01%20Radio%20Transceiver

主要代码:

    /* Includes ------------------------------------------------------------------*/
#include "main.h"
 
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "MY_NRF24.h"
#include "stdio.h"
/* USER CODE END Includes */
 
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */
 
/* USER CODE END PTD */
 
/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD */
 
/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */
 
/* USER CODE END PM */
 
/* Private variables ---------------------------------------------------------*/
SPI_HandleTypeDef hspi1;
 
UART_HandleTypeDef huart1;
 
/* USER CODE BEGIN PV */
 
/* USER CODE END PV */
 
/* Private function prototypes -----------------------------------------------*/
voID SystemClock_Config(voID);
static voID MX_GPIO_Init(voID);
static voID MX_SPI1_Init(voID);
static voID MX_USART1_UART_Init(voID);
/* USER CODE BEGIN PFP */
 
/* USER CODE END PFP */
 
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
uint64_t TxpipeAddrs = 0x324e6f6465;
char myTxData[32]; //= "Hello World!";
char AckPayload[32];
/* USER CODE END 0 */
 
/**
  * @brIEf  The application entry point.
  * @retval int
  */
int main(voID)
{
  /* USER CODE BEGIN 1 */
    myTxData[0]= 0;
  /* USER CODE END 1 */
 
  /* MCU Configuration--------------------------------------------------------*/
 
  /* reset of all peripherals,Initializes the Flash interface and the Systick. */
  HAL_Init();
 
  /* USER CODE BEGIN Init */
 
  /* USER CODE END Init */
 
  /* Configure the system clock */
  SystemClock_Config();
 
  /* USER CODE BEGIN SysInit */
 
  /* USER CODE END SysInit */
 
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_SPI1_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */
    NRF24_begin(GPIOB,GPIO_PIN_8,GPIO_PIN_9,hspi1);
    nrf24_DeBUGUART_Init(huart1);
    
    
    
    //**** TRANSMIT - ACK ****//
    
    NRF24_setPALevel(RF_PWR_HIGH);
    NRF24_openWriTingPipe(TxpipeAddrs);
 
    NRF24_setautoAck(true);
    NRF24_setChAnnel(52);
    NRF24_setPayloadSize(32);
    NRF24_setDatarate(RF24_2MBPS);
    
    NRF24_enableDynamicPayloads();
    NRF24_enableAckPayload();
    NRF24_stopListening();
    HAL_Delay(1000);
    prinTradioSetTings();
  /* USER CODE END 2 */
 
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
        if(NRF24_write(myTxData,32))
        {
            NRF24_read(AckPayload,32);
            HAL_UART_Transmit(&huart1,(uint8_t *)"Transmitted successfully\r\n",strlen("Transmitted successfully\r\n"),10);
            
            char myDataack[80];
            sprintf(myDataack,"AckPayload:  %s \r\n",AckPayload);
            HAL_UART_Transmit(&huart1,(uint8_t *)myDataack,strlen(myDataack),10);
        }else{
                    HAL_UART_Transmit(&huart1,(uint8_t *)"Transmitted Failed\r\n",strlen("Transmitted Failed\r\n"),10);}
        myTxData[0]= myTxData[0] + 1;
        HAL_Delay(1000);
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的stm32f103c8 与 nrf24 库的传输和接收问题全部内容,希望文章能够帮你解决stm32f103c8 与 nrf24 库的传输和接收问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。