HHIMERA писал(а):От комментов воздержусь
Уже не воздержался.
HHIMERA писал(а):Да... это CMSIS...
Кстати формально да. Просто я не хотел путать автора, он же потом любое определение регистра будет считать CMSISом.
HHIMERA писал(а):От комментов воздержусь
HHIMERA писал(а):Да... это CMSIS...
menzoda писал(а):Просто я не хотел путать автора, он же потом любое определение регистра будет считать CMSISом.
menzoda писал(а):перечитай внимательно.

dosikus писал(а):А получилось и новичка запутал и сам запутался
HHIMERA писал(а):не отличаем логические операции от арифметических
menzoda писал(а):Читай внимательно говорю.
Код: Выделить всё
if ((GPIOA->IDR & GPIO_IDR_1) == 1) {GPIOB->BSRR=GPIO_BSRR_BS_1;}
if ((GPIOA->IDR & GPIO_IDR_1) == 0) {GPIOB->BSRR=GPIO_BSRR_BR_1;}Код: Выделить всё
if ((GPIOA->IDR & GPIO_IDR_1) == 1) {GPIOB->BSRR=GPIO_BSRR_BS_1;}
Код: Выделить всё
if ((GPIOA->IDR & GPIO_IDR_1) != 0) {GPIOB->BSRR=GPIO_BSRR_BS_1;}
Код: Выделить всё
if ((GPIOA->IDR & GPIO_IDR_1) == GPIO_IDR_1) {GPIOB->BSRR=GPIO_BSRR_BS_1;}
BorisSPB писал(а): Надо писатьКод: Выделить всё
if ((GPIOA->IDR & GPIO_IDR_1) != 0) {GPIOB->BSRR=GPIO_BSRR_BS_1;}
илиКод: Выделить всё
if ((GPIOA->IDR & GPIO_IDR_1) == GPIO_IDR_1) {GPIOB->BSRR=GPIO_BSRR_BS_1;}
Код: Выделить всё
if (GPIOA->IDR & GPIO_IDR_1) {GPIOB->BSRR=GPIO_BSRR_BS_1;}
isx писал(а):Спасибо! Наконец-то замигал
А почему if ((GPIOA->IDR & GPIO_IDR_1) == 1) {GPIOB->BSRR=GPIO_BSRR_BS_1;} оказывается всегда ложным?
DrLivsy писал(а):Доброго...,
подскажите, плз, напряжение питания STM32 действительно не может быть больше 4В? Даже чуть-чуть?
А то есть желание поставить акк со старой мобилки, а там же 4,25 на полном заряде...
Как поступить, занизить напругу с батареи диодом или можно подключить так?
DrLivsy писал(а):Доброго...,
подскажите, плз, напряжение питания STM32 действительно не может быть больше 4В? Даже чуть-чуть?

slavokhire5 писал(а):Я так понял, что на выводы, помеченные как ETR?
Код: Выделить всё
//GPIO_InitTypeDef init;
init.GPIO_Mode = GPIO_Mode_AF;
init.GPIO_Pin = GPIO_Pin_0;
init.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&init);
GPIO_PinAFConfig(GPIOA,GPIO_PinSource0,GPIO_AF_TIM8);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8, ENABLE);
// Выбираем вход триггера от ETR
TIM_SelectInputTrigger(TIM8, TIM_TS_ETRF);
TIM_Cmd(TIM8, ENABLE);
Не могу понять, какой именно режим использовать для прерывания по переполнению (или по сравнению) в advanced timers. Там аж 4 вектора, но какой из них мне нужен, никак не разберусь. Подскажите пожалуйста