最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

钥匙搜寻器课程设计

来源:动视网 责编:小OO 时间:2025-09-25 17:58:18
文档

钥匙搜寻器课程设计

目录摘要1STM32的概述1.1STM32F10系列1.2STM32F10x重要参数1.3STM32架构的优势2无线收发器NRF24L01的介绍2.1性能参数2.2原理图2.3引脚定义3程序设计3.1发送模块程序设计3.2接受模块程序设计4原理图设计4.1发送模块原理图4.2接受模块原理图4.3总设计原理图5参考文献摘要:忘性比记性好的你是不是会经常钥匙不知道丢到了哪里?爱丢三落四的老婆是不是经常让你帮忙找钥匙找到心烦?……找呀找~找呀找!钥匙不见了,可能是家门钥匙、办公室钥匙、抽屉钥匙……为
推荐度:
导读目录摘要1STM32的概述1.1STM32F10系列1.2STM32F10x重要参数1.3STM32架构的优势2无线收发器NRF24L01的介绍2.1性能参数2.2原理图2.3引脚定义3程序设计3.1发送模块程序设计3.2接受模块程序设计4原理图设计4.1发送模块原理图4.2接受模块原理图4.3总设计原理图5参考文献摘要:忘性比记性好的你是不是会经常钥匙不知道丢到了哪里?爱丢三落四的老婆是不是经常让你帮忙找钥匙找到心烦?……找呀找~找呀找!钥匙不见了,可能是家门钥匙、办公室钥匙、抽屉钥匙……为
目   录

摘要                                                                       

1 STM32的概述                                                         

1.1 STM32F10系列                                              

1.2 STM32F10x重要参数                                           

     1.3 STM32架构的优势                                         

2 无线收发器NRF24L01的介绍                                                   

    

     2.1性能参数                                                    

2.2原理图                                                    

     2.3引脚定义                                               

3程序设计                                                    

     3.1发送模块程序设计                                     

3.2接受模块程序设计                                       

4原理图设计                                                    

     4.1发送模块原理图                                        

     4.2接受模块原理图                                         

     4.3总设计原理图                                          

5

参考文献 

摘要:

忘性比记性好的你是不是会经常钥匙不知道丢到了哪里?

爱丢三落四的老婆是不是经常让你帮忙找钥匙找到心烦?……

找呀找~找呀找!钥匙不见了,可能是家门钥匙、办公室钥匙、抽屉钥匙……为什么钥匙总不见?钥匙寻找器一定会帮到你的大忙,这款外观设计雅致, 在钥匙那里安装一个无线接收器(射频),在搜寻器那里安装发射器(射频),如果接收器接收到信号就,蜂鸣器开始工作。这样就可以找到钥匙。解决找不到钥匙的烦恼。使用简单,随时可找到钥匙,再也不用为找不到钥匙而发愁了。当然,除了钥匙你也可使用在任何生活物品上,一按就找到。

关键词:钥匙    搜寻器   蜂鸣器

1 STM32的概述

STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。按性能分成两个不同的系列:STM32F103“增强型”系列和STM32F101“基本型”系列。增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。

1.1 STM32F10系列

简介

  ARM公司的高性能”Cortex-M3”内核 

  1.25DMips/MHz,而ARM7TDMI只有0.95DMips/MHz 

  一流的外设 

  1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI,18MHz的I/O翻转速度 

  低功耗   

在72MHz时消耗36mA(所有外设处于工作状态),待机时下降到2μA 

  最大的集成度 

  复位电路、低电压检测、调压器、精确的RC振荡器等 

  简单的结构和易用的工具 

1.2 STM32F10x重要参数

  2V-3.6V供电 

  容忍5V的I/O管脚 

  优异的安全时钟模式 

  带唤醒功能的低功耗模式 

  内部RC振荡器 

  内嵌复位电路 

  工作温度范围: 

  -40°C至+85°C或105°C

1.3 STM32架构的优势

  除新增的功能强化型外设接口外,STM32互连系列还提供与其它STM32微控制器相同的标准接口,这种外设共用性提升了整个产品家族的应用灵活性,使开发人员可以在多个设计中重复使用同一个软件。新STM32的标准外设包括10个定时器、两个12位1-Msample/s 模数转换器 (交错模式下2-Msample/s)、两个12位数模转换器、两个I2C接口、五个USART接口和三个SPI端口。新产品外设共有12条DMA通道,还有一个CRC计算单元,像其它STM32微控制器一样,支持96位唯一标识码。

2 无线收发器NRF24L01的介绍

nRF24L01是由NORDIC[1]生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。输出功率频道选择和协议的设置可以通过SPI 接口进行设置。几乎可以连接到各种单片机芯片,并完成无线数据传送工作。 

  极低的电流消耗:当工作在发射模式下发射功率为0dBm 时电流消耗为11.3mA ,接收模式时为12.3mA,掉电模式和待机模式下电流消耗更低。 

2.1性能参数

  ◆ 小体积,QFN20 4x4mm封装  

  ◆ 宽电压工作范围,1.9V~3.6V,输入引脚可承受5V电压输入  

  ◆ 工作温度范围,-40℃~+80℃  

  ◆ 工作频率范围,2.400GHz~2.525GHz  

  ◆ 发射功率可选择为0dBm、-6dBm、-12dBm和-18dBm 

  ◆ 数据传输速率支持1Mbps、2Mbps[2] 

  ◆ 低功耗设计,接收时工作电流12.3mA,0dBm功率发射时11.3mA,掉电模式时仅为900nA  

  ◆ 126个通讯通道,6个数据通道,满足多点通讯和调频需要  

  ◆ 增强型“ShockBurst”工作模式,硬件的CRC校验和点对多点的地址控制 

  ◆ 数据包每次可传输1~32Byte的数据 

  ◆ 4线SPI通讯端口,通讯速率最高可达8Mbps,适合与各种MCU连接,编程简单  

  ◆ 可通过软件设置工作频率、通讯地址、传输速率和数据包长度  

  ◆ MCU可通过IRQ引脚快判断是否完成数据接收和数据发送 

2.2原理图

电路原理

  nRF24L01原理图 

   

  2.3引脚定义

  nRF24L01引脚定义 

   

3.程序设计

发送的程序

#include "stm32f10x.h"

#include "stm32_eval.h"

#include "delay.h"           

#include "NRF24L01.h"

#include "spi.h"

#include "stdio.h"

//管脚PB7,PB8的初始化函数

void GPIO_KEY_Config(void)

{

  GPIO_InitTypeDef GPIO_InitStructure;

  

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;

  GPIO_Init(GPIOB, &GPIO_InitStructure);

 

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;

  GPIO_Init(GPIOB, &GPIO_InitStructure);

}

//发送信号函数,向接收端发送信号S,接收不成功则显示"请确认接收端是否正常"

u8 send_data(u8 data)

{

             TX_Mode();//将射频模块NRF24L01设置为发送模式;

        delay_ms(500);//延迟以等待接收设备有足够时间转换成接收模式

        printf("\\n\\r正在发送数据(数字化): ");

        

        if(NRF24L01_TxPacket(data)==TX_OK)    //进行发送

           {

            delay_ms(500);

            return 1;  

        }

        else                                     //若发送不成功,显示”请确认接收端是否正常“

         {                                               

            printf("\\n\\r请确认接收端是否正常");        

            delay_ms(500);

            return 0;        

        }               

}

//主函数

 int main(void)

{     

    GPIO_KEY_Config();//初始化管脚PB7;

    NRF24L01_Init();    //初始化射频模块NRF24L01;            

    while(NRF24L01_Check())//对射频模块进行检测,若射频模块NRF24L01线路连接出错,则显示"nRF24L01检测出错!请确认nRF24L01的连接!"

    {

        printf("nRF24L01检测出错!请确认nRF24L01的连接! \\n\\r");

        delay_ms(1000);

    }

    //进入死循环,不断查询按键是否被按下,若按下则发送信息's'给接收端;

   while(1)

   {  

      if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7))

      {

       send_data('o');

       delay_ms(100);

      }

      if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8))

      {

       send_data('s');

       delay_ms(100);

      }

   

   }

    

       return 0;

}

接收的程序

#include "stm32f10x.h"

#include "stm32_eval.h"

#include "delay.h"           

#include "NRF24L01.h"

#include "spi.h"

#include "stdio.h"

//蜂鸣器的初始化函数

void BEEP_config(void)

{

    GPIO_InitTypeDef GPIO_InitStructure;

       /*使能蜂鸣器使用的GPIO时钟*/

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

       /*初始化蜂鸣器使用的GPIO管脚*/

      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;

      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

      GPIO_Init(GPIOA, &GPIO_InitStructure);

//主函数

 int main(void)

{     

    u8 receive_data;   //定义初始化接收数据变量;

    BEEP_config();//初始化蜂鸣器

    NRF24L01_Init();    //初始化射频模块NRF24L01            

    while(NRF24L01_Check())//对射频模块进行检测,若射频模块NRF24L01线路连接出错,则显示"nRF24L01检测出错!请确认nRF24L01的连接!"

    {

        printf("nRF24L01检测出错!请确认nRF24L01的连接! \\n\\r");

        delay_ms(1000);

    }

    //进入死循环,不断查询按键是否接收到数据,若接收到,则根据信息来令蜂鸣器开启或者关闭;

   while(1)

   {

      RX_Mode();  //将射频模块NRF24L01设置为接收模式,随时接收来自发送端的信息

      delay_ms(500);

         if(NRF24L01_RxPacket(receive_data)==0)//一旦接收到信息,则打印信息:"接收到数据".

                {

                         printf("\\n\\r接收到数据");

                        if(receive_data=='o')          //若接收到信息‘o’,则开启蜂鸣器

                        {

                         GPIO_SetBits(GPIOA, GPIO_Pin_12);    /*开启蜂鸣器*/

                        }

                        if(receive_data=='s')        //若接收到信息‘s’,则关闭蜂鸣器

                        {

                         GPIO_ResetBits(GPIOA, GPIO_Pin_12);    /*关闭蜂鸣器*/

                        }

                }

   }

    

       return 0;

}

4.原理图设计

                      发送模块原理图(上)

                

                       接收模块原理图(上)

                      

总设计原理图(上)

  

参考文献

[1]  邵贝贝.单片机嵌入式应用的在线开发方法.北京:清华大学出版社,2004年 

[2]  王兆安,黄俊.电力电子技术(第四版).机械工业出版社,2000年7月

[3]  胡汉才.单片机原理与接口技术.北京:清华大学出版社,1996年 

[4]  李朝青.单片机原理及接口技术.北京:北京航空航天大学出版社,1994年

文档

钥匙搜寻器课程设计

目录摘要1STM32的概述1.1STM32F10系列1.2STM32F10x重要参数1.3STM32架构的优势2无线收发器NRF24L01的介绍2.1性能参数2.2原理图2.3引脚定义3程序设计3.1发送模块程序设计3.2接受模块程序设计4原理图设计4.1发送模块原理图4.2接受模块原理图4.3总设计原理图5参考文献摘要:忘性比记性好的你是不是会经常钥匙不知道丢到了哪里?爱丢三落四的老婆是不是经常让你帮忙找钥匙找到心烦?……找呀找~找呀找!钥匙不见了,可能是家门钥匙、办公室钥匙、抽屉钥匙……为
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top