Почему регистров FMSC_BCR/BTR четыре?
Правильно ли я распределил массив FSMC_Bank1->BTCR?
Код: Выделить всё
FSMC_Bank1->BTCR[0] //FSMC_BCR1
FSMC_Bank1->BTCR[1] //FSMC_BCR2
FSMC_Bank1->BTCR[2] //FSMC_BCR3
FSMC_Bank1->BTCR[3] //FSMC_BCR4
FSMC_Bank1->BTCR[4] //FSMC_BTR1
FSMC_Bank1->BTCR[5] //FSMC_BTR2
FSMC_Bank1->BTCR[6] //FSMC_BTR3
FSMC_Bank1->BTCR[7] //FSMC_BTR4
Добавлено after 2 hours 1 minute 36 seconds:
Разобрался
Спойлер
Код: Выделить всё
#define LCD_REG (*((volatile unsigned short *) 0x60000000)) // RS = 0
#define LCD_RAM (*((volatile unsigned short *) 0x60020000)) // RS = 1
void init_GPIO_FSMC (void)
{
GPIO_INIT_PIN(GPIOD, 14, GPIO_MODE_OUTPUT50_ALT_PUSH_PULL); //D0
GPIO_INIT_PIN(GPIOD, 15, GPIO_MODE_OUTPUT50_ALT_PUSH_PULL); //D1
GPIO_INIT_PIN(GPIOD, 0, GPIO_MODE_OUTPUT50_ALT_PUSH_PULL); //D2
GPIO_INIT_PIN(GPIOD, 1, GPIO_MODE_OUTPUT50_ALT_PUSH_PULL); //D3
GPIO_INIT_PIN(GPIOE, 7, GPIO_MODE_OUTPUT50_ALT_PUSH_PULL); //D4
GPIO_INIT_PIN(GPIOE, 8, GPIO_MODE_OUTPUT50_ALT_PUSH_PULL); //D5
GPIO_INIT_PIN(GPIOE, 9, GPIO_MODE_OUTPUT50_ALT_PUSH_PULL); //D6
GPIO_INIT_PIN(GPIOE, 10, GPIO_MODE_OUTPUT50_ALT_PUSH_PULL); //D7
GPIO_INIT_PIN(GPIOD, 7, GPIO_MODE_OUTPUT50_ALT_PUSH_PULL); //CS
GPIO_INIT_PIN(GPIOD, 11, GPIO_MODE_OUTPUT50_ALT_PUSH_PULL); //RS
GPIO_INIT_PIN(GPIOD, 4, GPIO_MODE_OUTPUT50_ALT_PUSH_PULL); //RD
GPIO_INIT_PIN(GPIOD, 5, GPIO_MODE_OUTPUT50_ALT_PUSH_PULL); //WR
}
void init_FSMC (void)
{
RCC->AHBENR |= RCC_AHBENR_FSMCEN; //FSMC clock enable
FSMC_Bank1->BTCR[0] = FSMC_BCR1_MWID_0 | FSMC_BCR1_WREN | FSMC_BCR1_MBKEN; //FSMC_BCR1
FSMC_Bank1->BTCR[1] = (FSMC_BTR1_ADDSET_1 | FSMC_BTR1_DATAST_0 | FSMC_BTR1_DATAST_1); //FSMC_BTR1
}