发 帖  
原厂入驻New
[问答] 如何制作nRF51822 AK II BLE 蓝牙4.0 开发板(实验1跑马灯)
95 开发板 寄存器
分享
<a href="http://item.taobao.com/item.htm?spm=a230r.1.14.15.A0efUu&id=19066213304" target="_blank"><a href="http://item.taobao.com/item.htm?spm=a230r.1.14.15.A0efUu&id=19066213304
http://item.taobao.com/item.htm? ... &id=19066213304</a><br />
<br />
刚拿到开发板有2件事要做,了解下外围硬件结构和软件里需要的文件<br />
1 (usb-jtag有3个LED灯共阳设计,低电平亮。p0.21red,p0.22green,p0.23blue)带jtag仿真器的那款<br />
    AK板上【key0p0.16,key1p0.17(按下按钮低电平)】5个共阴led灯,高电平亮,led0p0.18,led1p0.19,led2p0.20,led3p0.21,led4p0.22<br />
   <br />
<br />
2软件部分:这个51822和51单片机一样,需要启动文件,和声明寄存器地址名字的文件(寄存器对应的地址,就像0x80是P0口)<br />
           ARM_startup_nRF51.s(启动文件)<br />
          nrf51.h(对应地址声明寄存器名字文件)<br />
         有了这2个文件就可以建工程了。启动文件需要稍微修改下:<br />
103行;                IMPORT  SystemInit
<div>
        104行                 IMPORT  __main
</div>
<div>
        105;                LDR     R0, =NRF_POWER_RAMON_ADDRESS
</div>
<div>
        106;                LDR     R2, [R0]
</div>
<div>
        107;                MOVS    R1, #NRF_POWER_RAMON_RAMxON_ONMODE_Msk
</div>
<div>
        108;                ORRS    R2, R2, R1
</div>
<div>
        109;                STR     R2, [R0]
</div>
<div>
        110;                LDR     R0, =SystemInit
</div>
<div>
        111;                BLX     R0<br />
上面用 ; 注释掉了几行(原因是SystemInit是检查编译器32位情况还有bool。这里我们不需要这个,工程越简单越好。)<br />
<br />
单片机跟STM32一样有2个晶振源(真奇怪我程序不启动晶振也照样用,难道真和51单片机一样,本实验只讲跑马灯)<br />
<br />
在io口控制的寄存器我们来看下,在nrf51.h文件中<br />
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                /**
        </div>
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                  * @简短的通用输入和输出。 (GPIO)
        </div>
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                  */
        </div>
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                <br />
        </div>
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                typedef struct {                                         /*!< GPIO结构                                                  */
        </div>
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                  __I  uint32_t  RESERVED0[321];     //保留
        </div>
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                  __IO uint32_t  OUT;                                /*!< 写GPIO端口。                                             */
        </div>
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                  __IO uint32_t  OUTSET;                          /*!< 设置中的单个位GPIO端口。                                   */
        </div>
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                  __IO uint32_t  OUTCLR;                         /*!< 清除个别位GPIO端口。                                */
        </div>
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                  __I  uint32_t  IN;                                    /*!< 阅读GPIO端口。                                                 */
        </div>
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                  __IO uint32_t  DIR;                                /*!<GPIO引脚的方向。                                             */
        </div>
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                  __IO uint32_t  DIRSET;                          /*!<DIR组寄存器。                                              */
        </div>
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                  __IO uint32_t  DIRCLR;                          /*!< DIR明确寄存器。                                                  */
        </div>
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                  __I  uint32_t  RESERVED1[120];
        </div>
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                  __IO uint32_t  IN_CNF[32];                  /*!< 配置GPIO引脚。                                           */
        </div>
        <div style="margin:0px;padding:0px;color:#ff8000;font-family:Tahoma;font-size:14px;background-color:#232323;">
                } NRF_GPIO_Type;     //起始地址0x50000000UL
        </div>
<br />
<span style="color:#ff8000;font-family:Tahoma;font-size:14px;line-height:22px;background-color:#232323;">#define NRF_GPIO_BASE                   0x50000000UL</span> <br />
<br class="Apple-interchange-newline" />
<span style="color:#ff8000;font-family:Tahoma;font-size:14px;line-height:22px;background-color:#232323;">#define NRF_GPIO                        ((NRF_GPIO_Type           *) NRF_GPIO_BASE)</span> <br />
以上翻译的nrf51.h在QQ750273008日志->蓝牙-><strong><span><span class="blog_tit_detail">nrf51822模块</span></span></strong> <br />
<br />
这里我们讲几点关键的:<br />
1第一次用引脚必须对该引脚配置比如p0.16这个按钮<br />
        <div>
                NRF_GPIO->IN_CNF[16]=(0 << 0)//key0
        </div>
        <div>
                                                   | (0 << 1)
        </div>
        <div>
                                                   | (3 << 2)//1la
        </div>
        <div>
                                                   | (4 << 8)
        </div>
        <div>
                                                   | (3 <<16);
        </div>
<br />
可以看到bit0,bit1,bit(2,3),bit(8,9,10),bit(16,17)<br />
我来讲下
PIN_CNF[n] 这个n代表硬件的引脚0~31用法NRF_GPIO->IN_CNF[16]就是设置p0.16脚<br />
<br />
PIN_CNF 是32位寄存器<span style="color:#000000;background-color:#e53333;">bit31~bit0</span>这里只用部分几个位(妈比的总算看到个用寄存器比较奢侈的单片机了)<br />
<br />
<span style="color:#ffe500;background-color:#000000;">bit0</span>      写0为输入,写1为输出(和DIR的寄存器关联也可以设置)<br />
<br />
<span style="color:#ffe500;background-color:#000000;">bit1</span><span style="color:#003399;">      </span>设置PIN[]的INPUT缓冲(写1断开缓冲,写0连上)<br />
<br />
<span style="color:#ffe500;background-color:#000000;">bit(3,2)</span>    设置上下拉13k内置电阻,00无拉,01下拉电阻,10保留,11上拉电阻。<br />
<br />
<span style="color:#ffe500;background-color:#000000;">bit(10,9,8)</span>   设置驱动强度000是最弱,我输出用011   我输入用100<br />
<br />
<span style="color:#ffe500;background-color:#000000;">bit(17,16)</span>    这是中断用的触发沿(10是上升沿触发,11下降沿触发)<br />
<br />
<br />
这里就配置好了1个引脚了。32个脚全用要写个函数配置下这32个脚。<br />
<br />
<br />
2配置好了引脚就可以使用这个引脚了。<br />
NRF_GPIO->OUT=0x0000 0000; //如果这32个脚都配置输出,就代表p0.31到p0.0都是低电平<br />
NRF_GPIO->OUT=0x0000 000f; //表示p0.7到p0.0是高电平,其他都是低电平。<br />
<br />
<br />
NRF_GPIO->OUTSET=
0x0000 000f; //表示只把
p0.7到p0.0电平拉高,其他脚电平不变(写1有效,写0无效)  
</div>
<div>
        NRF_GPIO->OUTCLR= 0x0000 000f; //表示只把 p0.7到p0.0电平拉低,其他脚电平不变 (写1有效,写0无效)   
</div>
<div>
        num=NRF_GPIO->IN; //表示读出32脚电平的值给变量num <br />
<br />
NRF_GPIO->DIR=0x0000 000f; //表示把 p0.7到p0.0设置输出状态,其他脚设置为输入  
</div>
<div>
        <br />
NRF_GPIO->DIRSET=
0x0000 000f; //表示只把 p0.7到p0.0设置输出状态,其他脚不变(写1有效,写0无效)  <br />
NRF_GPIO->DIRCLR= 0x0000 000f; //表示只把 p0.7到p0.0设置输入状态,其他脚不变(写1有效,写0无效) <br />
<br />
<br />
<br />
以下是我写的例程<br />
<br />
<br />
        <div>
                <br />
        </div>
        <div>
                void ioinit()
        </div>
        <div>
                {int i;
        </div>
        <div>
                /*  //usb-jtag
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->IN_CNF[21]=(1 << 0)//usb-jtag-red
        </div>
        <div>
                                     | (1 << 1)
        </div>
        <div>
                                     | (3 << 2)
        </div>
        <div>
                                     | (3 << 8)
        </div>
        <div>
                                     | (0 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->IN_CNF[22]=(1 << 0)//usb-jtag-green
        </div>
        <div>
                                     | (1 << 1)
        </div>
        <div>
                                     | (3 << 2)
        </div>
        <div>
                                     | (3 << 8)
        </div>
        <div>
                                     | (0 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->IN_CNF[23]=(1 << 0)//usb-jtag-blue
        </div>
        <div>
                                     | (1 << 1)
        </div>
        <div>
                                     | (3 << 2)
        </div>
        <div>
                                     | (3 << 8)
        </div>
        <div>
                                     | (0 <<16);
        </div>
        <div>
                */
        </div>
        <div>
                <span class="Apple-tab-span"> </span>  //boards-AK
        </div>
        <div>
                <span class="Apple-tab-span"> </span>i=NRF_GPIO->IN;//look
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->IN_CNF[16]=(0 << 0)//key0
        </div>
        <div>
                                     | (0 << 1)
        </div>
        <div>
                                     | (3 << 2)//1la
        </div>
        <div>
                                     | (4 << 8)
        </div>
        <div>
                                     | (3 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->IN_CNF[17]=(0 << 0)//key1
        </div>
        <div>
                                     | (0 << 1)
        </div>
        <div>
                                     | (3 << 2)//1la
        </div>
        <div>
                                     | (4 << 8)
        </div>
        <div>
                                     | (3 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>i=NRF_GPIO->IN;//look:0x00030000<span class="Apple-tab-span"> </span>
        </div>
        <div>
                  NRF_GPIO->IN_CNF[18]=(1 << 0)//led0
        </div>
        <div>
                                     | (1 << 1)
        </div>
        <div>
                                     | (0 << 2)
        </div>
        <div>
                                     | (3 << 8)
        </div>
        <div>
                                     | (0 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>i=NRF_GPIO->IN;//look<span class="Apple-tab-span"> </span>
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->IN_CNF[19]=(1 << 0)//led1
        </div>
        <div>
                                     | (1 << 1)
        </div>
        <div>
                                     | (0 << 2)
        </div>
        <div>
                                     | (3 << 8)
        </div>
        <div>
                                     | (0 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>i=NRF_GPIO->IN;//look<span class="Apple-tab-span"> </span>
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->PIN_CNF[20]=(1 << 0)//led2
        </div>
        <div>
                                     | (1 << 1)
        </div>
        <div>
                                     | (0 << 2)
        </div>
        <div>
                                     | (3 << 8)
        </div>
        <div>
                                     | (0 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>i=NRF_GPIO->IN;//look<span class="Apple-tab-span"> </span>
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->PIN_CNF[21]=(1 << 0)//led3
        </div>
        <div>
                                     | (1 << 1)
        </div>
        <div>
                                     | (0 << 2)
        </div>
        <div>
                                     | (3 << 8)
        </div>
        <div>
                                     | (0 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>i=NRF_GPIO->IN;//look<span class="Apple-tab-span"> </span>
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->PIN_CNF[22]=(1 << 0)//led4
        </div>
        <div>
                                     | (1 << 1)
        </div>
        <div>
                                     | (0 << 2)
        </div>
        <div>
                                     | (3 << 8)
        </div>
        <div>
                                     | (0 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>i=NRF_GPIO->IN;//look<span class="Apple-tab-span"> </span>
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->PIN_CNF[0]=(1 << 0)//p0.00
        </div>
        <div>
                                     | (1 << 1)
        </div>
        <div>
                                     | (0 << 2)
        </div>
        <div>
                                     | (3 << 8)
        </div>
        <div>
                                     | (0 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>i=NRF_GPIO->IN;//look<span class="Apple-tab-span"> </span>
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->PIN_CNF[1]=(1 << 0)//p0.01
        </div>
        <div>
                                     | (1 << 1)
        </div>
        <div>
                                     | (0 << 2)
        </div>
        <div>
                                     | (3 << 8)
        </div>
        <div>
                                     | (0 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>i=NRF_GPIO->IN;//look<span class="Apple-tab-span"> </span>
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->PIN_CNF[2]=(1 << 0)//p0.02
        </div>
        <div>
                                     | (0 << 1)
        </div>
        <div>
                                     | (0 << 2)
        </div>
        <div>
                                     | (3 << 8)
        </div>
        <div>
                                     | (0 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>i=NRF_GPIO->IN;//look<span class="Apple-tab-span"> </span>
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->PIN_CNF[3]=(1 << 0)//p0.03
        </div>
        <div>
                                     | (1 << 1)
        </div>
        <div>
                                     | (0 << 2)
        </div>
        <div>
                                     | (3 << 8)
        </div>
        <div>
                                     | (0 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>i=NRF_GPIO->IN;//look<span class="Apple-tab-span"> </span>
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->PIN_CNF[4]=(1 << 0)//p0.04
        </div>
        <div>
                                     | (1 << 1)
        </div>
        <div>
                                     | (0 << 2)
        </div>
        <div>
                                     | (3 << 8)
        </div>
        <div>
                                     | (0 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>i=NRF_GPIO->IN;//look<span class="Apple-tab-span"> </span>
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->PIN_CNF[5]=(1 << 0)//p0.05
        </div>
        <div>
                                     | (1 << 1)
        </div>
        <div>
                                     | (0 << 2)
        </div>
        <div>
                                     | (3 << 8)
        </div>
        <div>
                                     | (0 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>i=NRF_GPIO->IN;//look<span class="Apple-tab-span"> </span>
        </div>
        <div>
                <span class="Apple-tab-span"> </span>NRF_GPIO->PIN_CNF[6]=(1 << 0)//p0.06
        </div>
        <div>
                                     | (1 << 1)
        </div>
        <div>
                                     | (0 << 2)
        </div>
        <div>
                                     | (3 << 8)
        </div>
        <div>
                                     | (0 <<16);
        </div>
        <div>
                <span class="Apple-tab-span"> </span>i=NRF_GPIO->IN;//look<span class="Apple-tab-span"> </span>
        </div>
        <div>
                NRF_GPIO->OUT=0;
        </div>
        <div>
                i=NRF_GPIO->IN;//look
        </div>
        <div>
                NRF_GPIO->OUT=0xffffffff;
        </div>
        <div>
                i=NRF_GPIO->IN;//look:0x007f007b(.. 0111 1111 .. 0111 1n11 )bit2???
        </div>
        <div>
                NRF_GPIO->OUT=0;
        </div>
        <div>
                NRF_GPIO->OUT=0xffffffff;//led01234
        </div>
        <div>
                NRF_GPIO->OUTSET=3<<16;//key0,key1
        </div>
        <div>
                i=NRF_GPIO->IN;//look
        </div>
        <div>
                }
        </div>
        <div>
                <br />
        </div>
        <div>
                //delay
        </div>
        <div>
                void nrf_delay_ms(uint32_t volatile number_of_ms)
        </div>
        <div>
                {
        </div>
        <div>
                    int i;
        </div>
        <div>
                <span class="Apple-tab-span"> </span>   while(number_of_ms != 0)
        </div>
        <div>
                    {
        </div>
        <div>
                        number_of_ms--;
        </div>
        <div>
                        while(i<1000)
        </div>
        <div>
                <span class="Apple-tab-span"> </span>{
        </div>
        <div>
                          ++i;
        </div>
        <div>
                        }
        </div>
        <div>
                        i=0;
        </div>
        <div>
                    }
        </div>
        <div>
                }
        </div>
        <div>
                我硬件仿真了以下,结过和我想的差不多,除了P0.02这个脚,复位状态居然会拉低电平,和其他脚不一样,虽然也能当普通io脚用,我查了下这个脚可能复用了AD。<br />
51822有1个AD,可以在p0.6~p0.0这7个脚之间轮询取值。51822坑爹的资料,到现在也没翻译的参考手册。
        </div>
<br />
大家去看个文件nrf51_bitfields.h这个文件详细介绍了各个寄存器的设置值及偏移位。(哪个寄存器哪个bit位设置什么值,代表什么意思。)<br />
你可以把这些库文件加到你的工程里看看(虽然用只需要两个文件)。我觉得想真正了解设备工作状态流程的还是寄存器开发,用库开发你仿真时都跳到这文件,跳到那文件,跳的眼花。如果你英语好的话,可能你会习惯。我英语从小学就没及格过,一直用谷歌翻译,好累啊,希望后来学的朋友没我这么辛苦。51822用寄存器操作的我好像到现在还没看到这样的人。要是有就留个QQ哈。一起学习<br />
下面几集会陆续播出,我自学的慢,大家别见怪,我很懒的。。。。。
</div>
bleclass.rar (665.63 KB )
0
2020-6-10 04:36:16   评论 分享淘帖 邀请回答

相关问题

23个回答
1.MDK5软件安装、软件破解                                                                                      //搭建平台
2.CPU型号(pack installer、help、welcome、www网址下载PDF文件)           //建立支持的cpu
3.project、New uVision Project、文件位置、程序名、保存、选择CPU型号   //开始准备编程
4.Manage Run、Cmsis:core(打钩)、Device:start up,rcc,gpio(打钩)                //提取操作的库函数
5.RESOLVE(按键)                                                                                                       //进行默认化
6.options for target、target:8Mhz,Use micro LIB                                            //平台环境设置
7.OUTPUT:输出文件位置,创建HEX文件                                                               //平台环境设置
8.C/C++定义(STM32F40XX,USE_STDPERIPH_DRIVER)、Debug            //平台环境设置     语法和仿真器设置
9.新建main.c文件保存,添加到Target里                                                                // 主程序文本建立
10. 在main.c文件中写:
#include "stm32f4xx_conf.h"
int main(void)
{
  GPIO_InitTypeDef  GPIO_InitStructure;
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
  while(1){
                GPIO_SetBits(GPIOD,GPIO_Pin_12|GPIO_Pin_13);
//                Delay(0x7FFFFF);
                GPIO_ResetBits(GPIOD,GPIO_Pin_12|GPIO_Pin_13);
//                Delay(0x7FFFFF);
       
        }
}
keil 5跟以前的版本使用上有些区别,大家参考下吧。
2020-6-10 10:43:03 评论

举报

楼主你好,我也是今天才刚碰这块板子,专门来搞蓝牙4.0的,有空交流一下
2020-6-10 10:48:59 评论

举报

顶起!
<br>有问题多交流。
2020-6-10 11:04:18 评论

举报

2020-6-10 11:33:40 评论

举报

建立工程那个帖子在哪啊?
2020-6-10 11:40:21 评论

举报

楼主好,我写的按键怎么没反应,能不能帮忙看下,主要程序如下:<br />
<div   style="background-color:#E8E8E8;">
[C] 纯文本查看 复制代码
#defineKEY16void KEY_Init(void){NRF_GPIO-&gt;DIR &amp;= ~(1 &lt;&lt; KEY);//Direction of GPIO pins:0-&gt;input;1-&gt;outputNRF_GPIO-&gt;PIN_CNF[KEY] = (0 &lt;&lt; 0) | (0 &lt;&lt; 1) | (3 &lt;&lt; 2) | (7 &lt;&lt; 8) | (3 &lt;&lt; 16);}int main(void){KEY_Init();LED_Init();while (1){if (NRF_GPIO-&gt;IN &amp; (~(1 &lt;&lt; KEY))){NRF_GPIO-&gt;OUT = 0xffffffff;}else{NRF_GPIO-&gt;OUT = 0x00000000;}}}
</div>
<br />
2020-6-10 11:50:52 评论

举报

<img src="/static/image/smiley/kindeditor/26.gif" border="0" alt="" />&nbsp; 我好像2b了,已经搞定,判断换成这样就可以了,不糗。<br />
<div   style="background-color:#E8E8E8;">
[C] 纯文本查看 复制代码
if ((NRF_GPIO-&gt;IN &amp; (1 &lt;&lt; KEY)) == (1 &lt;&lt; KEY))
</div>
<br />
2020-6-10 11:57:27 评论

举报

谢谢原子,很好的学习参考,能多写几个模块就好了,关键是BLE部分
2020-6-10 12:14:32 评论

举报

2020-6-10 12:29:59 评论

举报

<br>请问楼主,我是飞思卡尔智能车赛参赛者,今年电磁组要用到无线通信实现两部车的信息通信,就传输速度、传输距离和可靠性24L01和蓝牙哪个更好,或者楼主能否推荐一款无线模块?
2020-6-10 12:39:26 评论

举报

蓝牙有办法加密吗?小白来问。。
<br>蓝牙通信&nbsp;&nbsp;本来就加密的&nbsp;&nbsp;你还要加密一次吗?
2020-6-10 13:08:03 评论

举报

<br>嗯。我想不让别人看到我的数据。可以吗?
2020-6-10 13:19:06 评论

举报

代理NORDIC蓝牙4.0芯片NRF51822
<br>联系人:刘工
<br>QQ:1330504646
<br>手机:13714153746
<br>NRF51822是一款为超低功耗无线应用(ULP&nbsp;wirelesss&nbsp;applications)打造的多协议单芯片解决方案。
<br>它整合了Nordic一流的无线传送器,同时支持Bluetooth(R)&nbsp;low&nbsp;energy&nbsp;和专用的2.4GHz协议栈。
<br>基本情况是:
<br>2.4GHZ多协议无线射频
<br>32位ARM&nbsp;Cortex&nbsp;M0&nbsp;处理器
<br>128位AES硬件加密处理器
<br>256kB&nbsp;flash&nbsp;/&nbsp;16kB&nbsp;RAM
<br>可编程外设接口PPI
<br>全功能数字接口:&nbsp;SPI&nbsp;/&nbsp;I2C&nbsp;/&nbsp;UART
<br>10位ADC
<br>可编程的输出功率:&nbsp;+4dBm&nbsp;to&nbsp;-20dBm
<br>应用开发和协议堆栈完全独立
<br>与NRF24L系列完全兼容
<br>与NRF51xxx系列管脚兼容
<br>全局独立电源管理
<br>工作电压范围(1.8&nbsp;V&nbsp;~&nbsp;3.6&nbsp;V)
2020-6-10 13:29:31 评论

举报

LZ我想问下,NRF51822的8种驱动模式怎么理解?
2020-6-10 13:45:22 评论

举报

请问这款芯片的IO能够在不改变配置的情况下既能输出又能输入吗?
2020-6-10 14:03:27 评论

举报

NRF_GPIO->IN_CNF[16]=(0 << 0)//key0
                                   | (0 << 1)
                                   | (3 << 2)//1la
                                   | (4 << 8)
                                   | (3 <<16);
请问以上语句是什么意思?
2020-6-10 14:18:10 评论

举报

哦!明白了。
原来是PIN_CNF[16]寄存器各位的值。为什么不能直接写在这样:
  PIN_CNF[16]=0X0003040C;
2020-6-10 14:35:12 评论

举报

只有小组成员才能发言,加入小组>>

12下一页

106个成员聚集在这个小组

加入小组

热门话题

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

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