Jump to content

Vladimir Rubtsov

Members
  • Content Count

    2
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Vladimir Rubtsov

  • Rank
    Новенький

Информация

  • Город
    Новосибирск

Электроника

  • Стаж в электронике
    Менее года
  • Сфера радиоэлектроники
    микроконтроллеры
  • Оборудование
    stm32h743zi
  1. Спасибо, сам разобрался как это работает. Было не просто понять. Может кому этот код понадобиться . Желаю всем удачи) #include "stm32h7xx.h" #define LED_PORT GPIOE #define LED_PORT_1 GPIOB #define LED_ORANGE (1 << 1) #define LED_GREEN (1 << 0) //void GPIO_Init(void); static inline void setup_leds(void){ RCC->AHB4ENR |= RCC_AHB4ENR_GPIOEEN; RCC->AHB4ENR |= RCC_AHB4ENR_GPIOBEN; RCC->AHB4ENR |= RCC_AHB4ENR_GPIOCEN; GPIOC->MODER &= ~GPIO_MODER_MODE13; //GPIOC->MODER |= GPIO_MODER_MODE13_1; LED_PORT->MODER = GPIO_MODER_MODE1_0; LED_PORT_1->MODER = GPIO_MODER_MODE0_0; } static inline void switch_leds_off(void){ LED_PORT->ODR = 0; } int main(void) { setup_leds(); //GPIO_Init(); while (1) { if((GPIOC->IDR & GPIO_IDR_ID13) == 0) { LED_PORT->ODR |= LED_ORANGE; //LED_PORT->BSRR |= GPIO_BSRR_BR1; //LED_PORT->ODR |= LED_ORANGE; }else{ //LED_PORT_1->ODR |= LED_GREEN; //LED_PORT_1->BSRR |= GPIO_BSRR_BR0; //LED_PORT_1->ODR |= LED_GREEN; LED_PORT->BSRR |= GPIO_BSRR_BR1; } } } /*void GPIO_Init () { RCC->AHB4ENR |= RCC_AHB4ENR_GPIOEEN; RCC->AHB4ENR |= RCC_AHB4ENR_GPIOCEN; GPIOE->MODER = GPIO_MODER_MODE1_0; //GPIOC->MODER = GPIO_MODER_MODE13; GPIOC->MODER |= GPIO_MODER_MODE13_0; GPIOC->MODER |= GPIO_MODER_MODE13_1; }*/
  2. Здраствуйте) Подскажите мне балбесу что я делаю не так. Хочу сделать чтобы при нажатии кнопки (PB13) срабатывал светодиод (PE1), но не работает, я как понял что я не правильно инициализирую режим работы порта кнопки, должен быть режим Input mode, но я не пойму как это сделать. У меня просто горит светодиод, но при нажатии кнопки ничего не происходит. Плата у меня stm32h743zi. Подскажите пожалуйста что я делаю не так, все сайты прочекал, но так ничего и не нашел. p.s. Пробовал через HAL писать тоже самое, там естественно все работает, но я хочу понять как работать с кнопкой без HAL. #include "stm32h7xx.h" void GPIO_Init(void); int main(void) { GPIO_Init(); if((GPIOC->IDR & GPIO_IDR_ID13) != 0) { GPIOE->BSRR |= GPIO_BSRR_BR1; }else{ GPIOE->BSRR |= GPIO_BSRR_BS1; } } void GPIO_Init () { RCC->AHB4ENR |= RCC_AHB4ENR_GPIOEEN; RCC->AHB4ENR |= RCC_AHB4ENR_GPIOCEN; GPIOE->MODER = GPIO_MODER_MODE1_0; GPIOC->MODER &= ~GPIO_MODER_MODE13; }
×
×
  • Create New...