在线时间3 小时
UID3597919
注册时间2019-10-26
NXP金币0
TA的每日心情 | 开心 2019-10-28 00:19 |
---|
签到天数: 2 天 [LV.1]初来乍到
新手上路
- 积分
- 24
- 最后登录
- 2019-11-29
|
1NXP金币
小白刚拿到一块LPC54114的板子,先写了简单的LED闪烁(LED6),我现在想实现按住PB2也就是位于PIO1_8的按键的时候另外一个灯(LED7)闪烁,各种方法我都试过了,程序跑出来效果是:复位时检测到按下按键LED7闪烁,没检测到的话LED6闪烁,但之后再按按键无法改变LED的闪烁,请问是按键初始化有问题吗?为什么只能在上电的时候检测一次呢?真心求助呀!- #include "board.h"
- #include "fsl_gpio.h"
- #include "pin_mux.h"
- /*******************************************************************************
- * Definitions
- ******************************************************************************/
- #define BOARD_LED_PORT 0U
- #define BOARD_LED_PIN7 25U
- #define BOARD_LED_PIN6 26U
- /*******************************************************************************
- * Prototypes
- ******************************************************************************/
- /*******************************************************************************
- * Variables
- ******************************************************************************/
- volatile uint32_t g_systickCounter;
- /*******************************************************************************
- * Code
- ******************************************************************************/
- void SysTick_Handler(void)
- {
- if (g_systickCounter != 0U)
- {
- g_systickCounter--;
- }
- }
- void SysTick_DelayTicks(uint32_t n)
- {
- g_systickCounter = n;
- while (g_systickCounter != 0U)
- {
- }
- }
- /*!
- * @brief Main function
- */
- int main(void)
- {
- /* Define the init structure for the output LED pin*/
- gpio_pin_config_t led1_config = {
- kGPIO_DigitalOutput,
- 0,
- };
- gpio_pin_config_t led2_config = {
- kGPIO_DigitalOutput,
- 0,
- };
- gpio_pin_config_t key_config = {
- kGPIO_DigitalOutput,
- 0,
- };
- /* Board pin init */
- BOARD_InitPins();
- BOARD_BootClockFROHF48M();
- BOARD_InitDebugConsole();
- /* Init output LED GPIO. */
- GPIO_PortInit(GPIO, BOARD_LED_PORT);
- GPIO_PinInit(GPIO, BOARD_LED_PORT, BOARD_LED_PIN7, &led1_config);
- GPIO_PinInit(GPIO, BOARD_LED_PORT, BOARD_LED_PIN6, &led2_config);
- GPIO_PinInit(GPIO, 1U,8U, &key_config);
- // GPIO_PinInit(GPIO, 1U,8U, &led_config);
- /* Set systick reload value to generate 1ms interrupt */
- if (SysTick_Config(SystemCoreClock / 1000U))
- {
- while (1)
- {
- }
- }
- while (1)
- {
- if(GPIO_PinRead(GPIO,1U,8U)!=0U)
- {
- GPIO_PortToggle(GPIO, BOARD_LED_PORT, 1u << BOARD_LED_PIN6);
- SysTick_DelayTicks(1000U);
- }else
- {
- GPIO_PortToggle(GPIO, BOARD_LED_PORT, 1u << BOARD_LED_PIN7);
- SysTick_DelayTicks(1000U);
- }
- }
- }
复制代码
|
|