Nordic 学习小记录

 1.判断按键有没有按下,通过和按键相连的引脚的高低电平判断。比如要判断BUTTON_1是否按下,可以通过判断(0.8)引脚是高电平还是低电平。而(0,8)引脚的名字是MODE_KEY

对应MODE_KEY引脚。引脚高电平为按键常态,引脚低电平为按键按下。就像SDA是P(1,9)引脚一样

2.同理,判断BUTTON_2 有没有按下,就看KEY_TEST这个引脚(0,11)是不是低电平即可

    注意:

   uint8_t MODE_KEY=0;
    uint8_t KEY_TEST=0;

这里面 MODE_KEY,KEY_TEST并不是按键,这只是一个常量。跟a=0是一样的意思。是为下面写代码写的。并不是说 MODE_KEY=0就代表MODE_KEY按下了。

#define BUTTON_1       8

(nrf_gpio_pin_read(BUTTON_1) == 0)

这才代表MODE_KEY按下。

        //MODE_KEY按键按下:写入数据
        if(nrf_gpio_pin_read(BUTTON_1) == 0)
        {
            if(MODE_KEY==0)
            {
                MODE_KEY=1;
                nrf_delay_ms(20);
                read_saadc_ntc();
                printf("\nBUTTON_1 \n");
                nrf_delay_ms(20);
            }
        }

这样写是为了不循环,就按一次出一次效果。

注意:void lcd(void){
    
    uint8_t MODE_KEY=0;
    uint8_t KEY_TEST=0;}

这样,定义常量写在函数里面就是局部常量,只能这一个函数用,别的函数用不了。拿出来就都可以用了。

3.上面那些按键写好以后,按下按键却没有反应

因为main里面没写:bsp_board_init(BSP_INIT_LEDS | BSP_INIT_BUTTONS); 

这个函数的作用是配置和初始化开发板上的LED和按钮,使它们可以被系统使用。初始化后,系统就可以通过相应的接口控制LED的亮灭和检测按钮的状态,以实现各种功能,比如指示状态、用户输入等。

在实际应用中,调用bsp_board_init(BSP_INIT_LEDS | BSP_INIT_BUTTONS);通常是在系统初始化阶段的一个重要步骤,以确保开发板上的LED和按钮可以正常工作,为后续的应用程序提供支持。

如果在嵌入式系统中的代码中没有调用bsp_board_init(BSP_INIT_LEDS | BSP_INIT_BUTTONS);来初始化开发板上的LED和按钮,那么通常会导致以下结果:

  1. LED无法正常工作:没有进行LED的初始化,系统无法控制LED的亮灭状态,因此无法通过LED来指示状态或执行其他操作。

  2. 按钮无法检测:没有进行按钮的初始化,系统无法检测按钮的状态变化,也就无法响应用户的按键操作。

  3. 可能导致系统功能异常:如果系统的正常运行依赖于对LED和按钮的控制与检测,那么没有进行初始化可能会导致系统功能异常或无法正常工作。

因此,一般情况下,在嵌入式系统开发中,确保对开发板上的外设进行正确的初始化是非常重要的,包括LED和按钮在内。调用bsp_board_init(BSP_INIT_LEDS | BSP_INIT_BUTTONS);可以确保开发板上的LED和按钮被正确初始化,以便系统可以正常使用它们的功能。

4.这是引脚:和按键和灯没关系。  主控主动设置引脚为输出先

nrf_gpio_cfg_output(NRF_GPIO_PIN_MAP(1,8));
nrf_gpio_pin_set(NRF_GPIO_PIN_MAP(1,8));

5.#define不供外部使用,可以写在.c文件

如果不给外部使用的写在.h文件,那在调用的时候,会调用2次

.c相当于是独立的

.h供别人使用的

6.  .c头文件上面会写

#include "pwm.h"
#include "nrfx_pwm.h"这些

一般第一个就是自己,比如lcd.c头文件第一个是lcd.h

.h文件

可以不写#include

可以只调用#include <stdint.h>,这个头文件里面包含u8,u16,u32这些

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值