Search
Write a publication
Pull to refresh
3
0
Send message
#include "stm32f4xx.h"
#define BLUE (15)
#define ORANGE (13)
 
int main()
{
RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN | RCC_AHB1ENR_GPIOAEN | RCC_AHB1ENR_GPIOCEN;
// для выбора порта прерывания обязательно включить тактирование контроллера системного конфигурирования
RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;
 
GPIOD->MODER |= GPIO_MODER_MODER13_0 | GPIO_MODER_MODER15_0;
GPIOC->PUPDR |= GPIO_PUPDR_PUPDR6_0; // подтягивающий резистор к питанию
 
EXTI->RTSR |= EXTI_RTSR_TR0; // прерывание по 0 линии по повышению (rising)
EXTI->FTSR |= EXTI_FTSR_TR6; // прерывание по 6 линии по падению (falling)
EXTI->IMR |= EXTI_IMR_MR0 | EXTI_IMR_MR6; // снимаем маскирование прерываний по линиям 0 и 6
SYSCFG->EXTICR[0] |= SYSCFG_EXTICR1_EXTI0_PA; // прерывание по 0 линии с порта A
SYSCFG->EXTICR[1] |= SYSCFG_EXTICR2_EXTI6_PC; // прерывание по 6 линии с порта C
 
NVIC_SetPriority(EXTI0_IRQn, 15);
NVIC_SetPriority(EXTI9_5_IRQn, 10);
NVIC_EnableIRQ(EXTI0_IRQn);
NVIC_EnableIRQ(EXTI9_5_IRQn);
 
for(;;){
asm("NOP");
} 
}
 
void EXTI0_IRQHandler(void)
{
EXTI->PR = EXTI_RTSR_TR0;
GPIOD->ODR ^= (1 << BLUE);
}
void EXTI9_5_IRQHandler(void)
{
EXTI->PR = EXTI_RTSR_TR6;
GPIOD->ODR ^= (1 << ORANGE);
}

Мне не с чем сравнивать, я начинаю только. Сейчас разбираюсь с прерываниями. Два светодиода, две кнопки, два прерывания. Код в платформио выглядит так. Файл bin 884 байта.

Мне кажется, что куб прячет гораздо больше и добавляет в проект несколько мегабайт файлов. Причём я если при генерации проекта выбирал везде LL, и копировать только используемые файлы, он мне все равно в папку проекта кроме CMSIS накидывает и HAL, и main.c создаёт довольно не слабый. Может я конечно кубик готовить не умею. Я использую CMSIS, и всю инициализации пишу сам, а платформио библиотеки в проект не копирует, и вся папка проекта у меня килобайт на 60 выходит.

Плагин PlatformIO к VSCode не рассматривали? Я поставил его, а от Куба полностью отказался.

Думаю доработанная гуглотаблица будет многим интересна. Можно получить?

Спасибо, понял. Не обратил внимание, что они разные. Увидел только 41256.

А у меня при подтягиваниях очень сильно напрягается шея, под конец аж до боли. И ничего не могу с этим поделать. Не подскажете, куда копать?

А можно спросить про организацию памяти? На фото видно только 12 корпусов по 256кбит х 1. Из них же 16 бит не наберёшь. Или 4 корпуса не попали на фото?

Почему за 2 недели? Вроде на 30 умножаете?

Ну мой доход позволяет взять миди клавиатуру, но в компьютере тоже нет видеокарты. Это как-то может помешать музыке?

Я, к своему стыду, абсолютно не понимаю. Можно ткнуть носом, что почитать для понимания?

2

Information

Rating
Does not participate
Registered
Activity