【藍芽低功耗BLE】控制GPIO來點亮LED,blegpio

來源:互聯網
上載者:User

【藍芽低功耗BLE】控制GPIO來點亮LED,blegpio

這節講一下最簡單的,也是最基礎的東西,CC2540的IO操作,把PORT口當做GPIO來用,廢話不多說,往下看。

1、硬體電路

硬體電路時最簡單的,用一根GPIO去控制LED燈,由於GPIO作為output,所以也不用管GPIO的模式。


還是挺簡單的,控制左邊GPIO的高低來開關LED燈。


2、相關寄存器

P0SEL      P0[7:0]功能設定寄存器,預設設定為普通I/O口
P0INP P0[7:0]作為輸入口時電路模式寄存器,可以設定為輸入上下拉等
P0 P0[7:0]可以位定址的I/O寄存器
P0DIR P0口輸入輸出設定寄存器

P0SEL    0:普通IO口    1:第二功能

P0DIR    0:輸入            1:輸出

P0INP    0:上拉/下拉    1:三態


3、代碼實現

這裡以P1_0為例,看下代碼中是如何?。

在hal_led.c裡面的HalLedInit函數:

void HalLedInit (void){#if (HAL_LED == TRUE)  HalLedSet(HAL_LED_ALL, HAL_LED_MODE_OFF);  // Initialize all LEDs to OFF.  // Set LED GPIOs to outputs.  LED1_DDR |= LED1_BV;#if (!defined HAL_PA_LNA && !defined HAL_PA_LNA_CC2590)  LED2_DDR |= LED2_BV;#if (!defined CC2540_MINIDK && !defined HAL_BOARD_CC2540USB)  LED3_DDR |= LED3_BV;#endif#endif#if defined BLINK_LEDS  HalLedStatusControl.sleepActive = FALSE;  // Initialize sleepActive to FALSE.#endif#endif
相關的宏定義
/* 1 - Green */#define LED1_BV                        BV(0)#define LED1_SBIT                      P1_0#define LED1_DDR                       P1DIR#define LED1_POLARITY                  ACTIVE_HIG

開關LED

  #define HAL_TURN_OFF_LED1()       st( LED1_SBIT = LED1_POLARITY (0); )  #define HAL_TURN_OFF_LED2()       st( LED2_SBIT = LED2_POLARITY (0); )  #define HAL_TURN_OFF_LED3()       st( LED3_SBIT = LED3_POLARITY (0); )  #define HAL_TURN_OFF_LED4()       HAL_TURN_OFF_LED1()  #define HAL_TURN_ON_LED1()        st( LED1_SBIT = LED1_POLARITY (1); )  #define HAL_TURN_ON_LED2()        st( LED2_SBIT = LED2_POLARITY (1); )  #define HAL_TURN_ON_LED3()        st( LED3_SBIT = LED3_POLARITY (1); )  #define HAL_TURN_ON_LED4()        HAL_TURN_ON_LED1(


提取一下關鍵代碼:

1)把P1_0設定為輸出

P1_DIR |= 0x01;

2)設定P1_0為高電平,點亮LED

P1_0 = 1;
2)設定P1_0為低電平,熄滅LED
P1_0 = 0;

其實看一下協議棧裡面的HAL中針對各個介面的封裝也不難。


這一節就先到這。



賽揚226性可以怎?跟AMD的sempron 2200+比哪個更好

玩遊戲當然是AMD的好,但是多媒體是賽揚2.26的好一點
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.