Доброго времени суток всем.
Имеется демоплатка сабж, заливаю вот такой код.
#include <iostm32f100xB.h>
void main(void)
{
unsigned long d;
//Enabling clock for GPIOC
RCC_APB2ENR_bit.IOPCEN = 1;
//Configuring GPIO8 and GPIO9 as push-pull output
//refer to datasheet for details
GPIOC_CRH_bit.CNF8 = 0;
GPIOC_CRH_bit.CNF9 = 0;
GPIOC_CRH_bit.MODE8 = 1;
GPIOC_CRH_bit.MODE9 = 1;
GPIOA_CRL_bit.CNF1 = 1;
GPIOA_CRL_bit.MODE1 = 0;
while (1)
{
while ( (GPIOA_IDR_bit.IDR0) );
//switching the LEDs
if (GPIOC_ODR_bit.ODR8)
{
GPIOC_ODR_bit.ODR8 = 0;
GPIOC_ODR_bit.ODR9 = 1;
}
else
{
GPIOC_ODR_bit.ODR8 = 1;
GPIOC_ODR_bit.ODR9 = 0;
}
//simple delay
for (d=0; d<100000UL; ++d);
}
}
Ожидаемый результат - Светодиоды мигают, пока кнопка отпущена. При нажатии кнопки виснут. Реальность - в регистре IDR всегда 0, мигание есть.
На самом деле, я не могу вообще управлять портом A. Другими порты работают логично. Среда разработки IAR. Там в настройках есть галочка для добавления загрузчика, если ее снимаю - вообще не работает прошивка. Я думаю, может загрузчик как-то блокирует порт.
Помогите решить проблему. Спасибо.