OpenEdv-开源电子网

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

stm32根据NRF24L01接收到的字符执行相应的程序

[复制链接]

2

主题

2

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2018-9-28
在线时间
4 小时
发表于 2018-11-3 18:28:03 | 显示全部楼层 |阅读模式
程序如下:
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
#include "spi.h"
#include "key.h"
#include "24l01.h"
#include <stdlib.h>
#include "receive.h"
#include "misc.h"

//要写入到W25Q16的字符串数组
const u8 TEXT_Buffer[]={"Explorer STM32F4 SPI TEST"};
#define SIZE sizeof(TEXT_Buffer)         
       
int main(void)
{
        u8 key,mode;
        u16 t=0;                         
        u8 tmp_buf[33];       
        int decode;
        decode=0;
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
        delay_init(168);  //初始化延时函数
        uart_init(115200);        //初始化串口波特率为115200
        LED_Init();                                        //初始化LED
        KEY_Init();                                        //按键初始化
        NRF24L01_Init();                    //初始化NRF24L01
        {
                LED1=!LED1;
                delay_ms(1000);
        }          
        while(1)
        {       
                key=KEY_Scan(0);
                if(key==KEY0_PRES)
                {
                        mode=0;   
                        break;
                }else if(key==KEY1_PRES)
                {
                        mode=1;
                        break;
                }
                t++;
                if(t==100)LCD_ShowString(10,150,230,16,16,"KEY0:RX_Mode  KEY1:TX_Mode"); //闪烁显示提示信息
                if(t==200)
                {       
                        LCD_Fill(10,150,230,150+16,WHITE);
                        t=0;
                }
                delay_ms(5);          
        }   
        LCD_Fill(10,150,240,166,WHITE);//清空上面的显示                  
        POINT_COLOR=BLUE;//设置字体为蓝色          
        if(mode==0)//RX模式
        {
                LCD_ShowString(30,150,200,16,16,"NRF24L01 RX_Mode");       
                LCD_ShowString(30,170,200,16,16,"Received DATA:");       
                NRF24L01_RX_Mode();                  
                while(1)
                {                                                                                   
                        if(NRF24L01_RxPacket(tmp_buf)==0)//一旦接收到信息,则显示出来.
                        {
                                tmp_buf[32]=0;//加入字符串结束符
                                LED0=!LED0;       
                        }                       
                        decode=myatoi(tmp_buf);
                                switch(decode)
                                {
                                        case 111111ED1=!LED1;break;
                                        case 222222ED1=!LED1;break;
                                }
                }       
       
        }     
               
}

myatoi()是字符串转换成整型
int myatoi(const u8* pstr)
{
        int Ret_Integer = 0;
        int Integer_sign = 1;
       
        //判断指针是否为空
        if(pstr == NULL)
        {
                printf("ointer is NULL\n");
                return 0;
        }
       
        //跳过前面的空格字符
        while(isspace(*pstr) == 0)
        {
                pstr++;
        }
       
        //判断正负号
        //如果是正号,指针指向下一个字符
        //如果是符号,把符号标记为Integer_sign置-1,然后再把指针指向下一个字符
        if(*pstr == '-')
        {
                Integer_sign = -1;
        }
        if(*pstr == '-' || *pstr == '+')
        {
                pstr++;
        }
       

        //把数字字符串逐个转换成整数,并把最后转换好的整数赋给Ret_Integer
        while(*pstr >= '0' && *pstr <= '9')
        {
                Ret_Integer = Ret_Integer * 10 + *pstr - '0';
                pstr++;
        }
        Ret_Integer = Integer_sign * Ret_Integer;
       
        return Ret_Integer;
}



收到的数据一直识别不了,执行不了相应的程序


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

使用道具 举报

0

主题

140

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2019-4-2
在线时间
3 小时
发表于 2019-4-8 08:09:22 | 显示全部楼层
真是个好帖子!我要顶住啊!
回复 支持 反对

使用道具 举报

5

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2021-4-12
在线时间
12 小时
发表于 2022-4-26 11:14:02 | 显示全部楼层
谢谢楼主的好主意
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-5-15 19:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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