Спасибо за ваши ответы!
по 1 вопросу. получается что GPIO имеет 4 выхода и при установлении соответствующей единицы туда подается напряжение?
по 2 вопросу. Почему в данном случае сначала используют указатель GPIO6->DR[led<<2] = ~led а потом не указатель GPIO6->DR[led<<2] = led?
Цитата
Так программисты Keil-а объявили порты чтобы реализовать запись единичных битов без предварительного чтения порта. А маской служит шина адреса. Т.е. индекc массива он появляется на шине адреса во время записи и определяет маску куда будет записан бит.
здесь немного не понял... у нас в структуре GPIO_TypeDef 1024 значения.
GPIO6->DR[led<<2] = ~led
к примеру led=LED_A=0000 0010. смещаем на два. получаем 0000 0000 , т.е. DR[0] записали 0000 0010. и что?)
#define GPIO6 ((GPIO_TypeDef *)GPIO6_BASE) - это строка не очень ясна. Что означает " *) ". Это что то на подобие умножение значения на маску?
почему выбрано такое смещение APB_GPIO6_OFST (0x0000C000)? или это просто так?
по 4 вопросу. Какие ещё существуют служебные команды?
Можете ещё разъяснить про вектора и как пишутся прерывание.
p.s. Христос Воскресе