コード例 #1
0
ファイル: Keyboard.c プロジェクト: kimmoli/stm32-toh-blinky
void Keyboard_Initialize (void) 
{
   uint32_t n;

   /* Configure pins: Input Mode (25 MHz) */
   for (n = 0; n < NUM_KEYS; n++) 
   {
       GPIO_PortClock   (Pin_Key[n].port, true);
       GPIO_PinWrite    (Pin_Key[n].port, Pin_Key[n].num, 0);
       GPIO_PinConfigure(Pin_Key[n].port, Pin_Key[n].num,
                    GPIO_MODE_INPUT,
                    GPIO_OUTPUT_PUSH_PULL,
                    GPIO_OUTPUT_SPEED_25MHz,
                    GPIO_NO_PULL_UP_DOWN);  
	}
   RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;
   
   SYSCFG->EXTICR[0] |= SYSCFG_EXTICR1_EXTI3_PC; /* button right */
   SYSCFG->EXTICR[3] |= SYSCFG_EXTICR4_EXTI14_PB; /* button left */
   
   NVIC_EnableIRQ(EXTI3_IRQn);
   NVIC_EnableIRQ(EXTI15_10_IRQn);
   
   /* Enable interrupts from both rising and falling edge of buttons */
   EXTI->IMR |= EXTI_IMR_MR3 | EXTI_IMR_MR14;
   EXTI->RTSR |= EXTI_RTSR_TR3 | EXTI_RTSR_TR14;
   EXTI->FTSR |= EXTI_FTSR_TR3 | EXTI_FTSR_TR14;
   
}
コード例 #2
0
ファイル: led.c プロジェクト: hunxiyi/led
/*-----------------------------------------------------------------------------
 *      LED_Uninitialize:  Uninitialize LEDs
 *
 * Parameters: (none)
 * Return:     (none)
 *----------------------------------------------------------------------------*/
void LED_Uninitialize (void) {
  uint32_t n;

  /* Configure pins: Input mode, without Pull-up/down resistors */
  for (n = 0; n < NUM_LEDS; n++) {
    GPIO_PinConfigure(Pin_LED[n].port, Pin_LED[n].num,
                      GPIO_IN_FLOATING,
                      GPIO_MODE_INPUT);
  }
}
コード例 #3
0
ファイル: led.c プロジェクト: hunxiyi/led
/*-----------------------------------------------------------------------------
 *      LED_Initialize:  Initialize LEDs
 *
 * Parameters: (none)
 * Return:     (none)
 *----------------------------------------------------------------------------*/
void LED_Initialize (void) {
  uint32_t n;

  /* Configure pins: Push-pull Output Mode (50 MHz) with Pull-down resistors */
  for (n = 0; n < NUM_LEDS; n++) {
    GPIO_PortClock   (Pin_LED[n].port, true);
    GPIO_PinWrite    (Pin_LED[n].port, Pin_LED[n].num, 0);
    GPIO_PinConfigure(Pin_LED[n].port, Pin_LED[n].num,
                      GPIO_OUT_PUSH_PULL, 
                      GPIO_MODE_OUT2MHZ);
  }
}
コード例 #4
0
ファイル: led.c プロジェクト: kimmoli/stm32-toh-blinky
/*-----------------------------------------------------------------------------
 *      LED_Uninitialize:  Uninitialize LEDs
 *
 * Parameters: (none)
 * Return:     (none)
 *----------------------------------------------------------------------------*/
void LED_Uninitialize (void) {
  uint32_t n;

  /* Configure pins: Input mode, without Pull-up/down resistors */
  for (n = 0; n < NUM_LEDS; n++) {
    GPIO_PinConfigure(Pin_LED[n].port, Pin_LED[n].num,
                      GPIO_MODE_INPUT,
                      GPIO_OUTPUT_PUSH_PULL,
                      GPIO_OUTPUT_SPEED_2MHz,
                      GPIO_NO_PULL_UP_DOWN);
  }
}