Настройка FSCM в STM32F103ZG

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Аватара пользователя
wss60
Потрогал лапой паяльник
Сообщения: 350
Зарегистрирован: Пт сен 10, 2010 20:48:01
Откуда: Минск

Настройка FSCM в STM32F103ZG

Сообщение wss60 »

Пытаюсь подключить дисплей к FSCM, но не могу разобраться с настройками регистров.
Почему регистров 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
}
Реклама
Ответить

Вернуться в «ARM»