OpenEdv-开源电子网

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

有关NRF24L01传送问题

[复制链接]

3

主题

4

帖子

0

精华

新手入门

积分
32
金钱
32
注册时间
2015-9-20
在线时间
2 小时
发表于 2016-3-7 21:03:45 | 显示全部楼层 |阅读模式
5金钱
我先说下我的问题。我做了一个遥控,用到了ADC,NRF24L01和PWM。遥控器采集ADC数据并发送,接收机接收数据并生成PWM波。因为AD转换值是12位,我通过一系列转化,在接受机中将数值转化为我所需要的值来驱动无刷电调,从而驱动电机。但是在控制过程中,NRF24L01发送了一会儿数据突然发送不了了。我不知道是什么原因,求解答。程序如下:(主程序)遥控器:

#include "stm32f10x.h"
#include "24l01.h"
#include "spi.h"
#include "adc.h"
#include "delay.h"
#include "usart.h"
int main(void)
{       
    u16 adcx1;
        u8 temp_buf1[2];
         SystemInit ();
         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
    delay_init();                     //延时函数初始化       
    uart_init(9600);                 //串口初始化为9600
        Adc_Init();                                  //ADC初始化       
        printf("ADC初始化完成\r\n");
        NRF24L01_Init();            //初始化NRF24L01
        while(NRF24L01_Check());
         printf("NRF初始化完成\r\n");
         NRF24L01_TX_Mode();
         printf("发送模式\r\n");
        while(1)
         {
             adcx1=Get_Adc_Average(ADC_Channel_0,10);
                 printf("adc数据:");
                 temp_buf1[0]=(adcx1>>8);
                 temp_buf1[1]=(adcx1&0x00ff);
                 while(NRF24L01_TxPacket(temp_buf1)!=TX_OK);
                 printf("=%d\r\n",adcx1);
         }
}



接收机:
#include "stm32f10x.h"
#include "spi.h"
#include "pwm.h"
#include "24l01.h"
#include "delay.h"
int main(void)
{       
    u8 buf1[2];
        u16 a,a1;
    delay_init();                     //延时函数初始化       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
    TIM3_PWM_Init(20000,72);
        NRF24L01_Init();            //初始化NRF24L01
        while(NRF24L01_Check());
        NRF24L01_RX_Mode();
        while(1)
         {
              while(NRF24L01_RxPacket(buf1)==0)
                 {
                  a=(buf1[0]<<8)+buf1[1];
                  a1=a/4+800;
                  }
         TIM_SetCompare3(TIM3,a1);
         }
         
}



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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2016-3-9 23:37:43 | 显示全部楼层
回复

使用道具 举报

5

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
金钱
200
注册时间
2015-12-26
在线时间
54 小时
发表于 2016-3-11 10:59:51 | 显示全部楼层
网上下载个能用的例程,看看是不是模块坏了。电压是不是高了。
回复

使用道具 举报

5

主题

110

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2013-9-16
在线时间
0 小时
发表于 2016-5-6 13:09:45 | 显示全部楼层
控制电路 远离点电机
RFinchina 团队欢迎无线方面的技术交流 QQ 474882985
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-9-28 23:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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