Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Другие темы раздела
ARM, Cortex, STM32 микроконтроллер Проблемы с SPI. STM32F103C6 + гироскоп L3G4200D [решено] http://www.cyberforum.ru/arm/thread2092860.html
Здравствуйте. Подключаю гироскоп L3G4200D к STM32F103. Вот из даташита схема взаимодействия по SPI (кликабельно) <Изображение удалено> Видно что уровень CLK в неактивном состоянии высокий....
примеры работы с 6800 шиной? ARM, Cortex, STM32 микроконтроллер
Хочу подключить к stm32 MC14442P - это такой старый ADC чип с 6800 протоколом. Пока вижу примеры работы только с более популярным сейчас 8080 протоколом, в основном с внешними экранами... Есть ли у...
ARM, Cortex, STM32 микроконтроллер [РЕШЕНО] Проблемы с инициализацией USART
Доброго времени суток всем. Столкнулся с совсем простой проблемой, но никак не пойму что же не так. Нужно просто заюзать USORT1 на stm32f103. Вроде все просто должно быть, но не работает!!!...
ARM, Cortex, STM32 микроконтроллер Передача строк/чисел в контроллер (решено) Контроллер STM32F102C8T6. Передаю строки по USB. В строке содержится двоичное 4 разрядное число типа "1010" (но разряды в обратном порядке). Для проверки правильности приёма контроллер обратно... http://www.cyberforum.ru/arm/thread2092857.html
ARM, Cortex, STM32 микроконтроллер STM32F4 Discovery: ошибка в документации? http://www.cyberforum.ru/arm/thread2092856.html
смотрю файл DM00039084.pdf UM1472 User Manual на эту плату стр.36 смотрим подключение MEMS LIS302DL сигнал CS по схеме подключен к PE3 потом открываем страницу 28 этого же даташита и смотрим...
STM32 c фирменным отладчиком ARM, Cortex, STM32 микроконтроллер
http://www.ebv.com/en/products/stm32-de ... ntest.html конкурс, всем зарегистрировавшимся шлют платку на которой проц и отладчик. отладчик только для stm на Украину дошло меньше чем за неделю
ARM, Cortex, STM32 микроконтроллер DAC: Частота треугольника
Здравствуйте. Не могу разобраться как строится треугольник. Вот, скажем, таймер, привязанный к DAC-у, запускается со следующими параметрами: TIM6->PSC = 0; TIM6->ARR = 500; Как рассчитать...
ARM, Cortex, STM32 микроконтроллер [ChibiOS] Странные значения на PB12-15 у STM32VLDiscovery Добрый день, камрады. Разработал небольшую плату для STM32VLDyscovery. Повесил dip переключатель S1 на удобно расположенные ноги PB12-15. Рядом на PB10-11 расположились джамперы. Написал прошивку... http://www.cyberforum.ru/arm/thread2092853.html
ARM, Cortex, STM32 микроконтроллер распределение каналов DMA по периферии http://www.cyberforum.ru/arm/thread2092852.html
Взялся делать обмен по USORT с использованием DMA, и сразу споткнулся. Не идет передача из памяти в USORT->DR через канал DMA. Разобрался, что нет запроса от USORT, а почему - никак не мог понять,...
ARM, Cortex, STM32 микроконтроллер Keil stm32f103c8 прерывания Здравствуйте. Прогаю AVRки на ASMе, но тут возникла необходимость чуть потыкать ARM в среде Keil + CMSIS, естественно на Сишке. Поэтому меня вот что озадачило: как оформляются вектор и обработчики... http://www.cyberforum.ru/arm/thread2092851.html
ВитГа
0 / 0 / 0
Регистрация: 26.10.2011
Сообщений: 811
20.10.2012, 11:41 0

STM32F4 Discovery: Не могу заставить работать SPI2

20.10.2012, 11:41. Просмотров 9529. Ответов 5
Метки (Все метки)

Ответ

сделал свой вопрос более наглядным....

использую CooCox

хочу подключить к STM32F4 DISCOVERY дисплей LCD NOKIA 5110

в софт SPI подключение проходит (так я проверил строку инициализации дисплея)

подключение дисплея к пинам платы:
- PB10 CSE - выбор LCD
- PB13 CLK - такт
- PB14 RST - сброс
- PB15 MOSI - данные

для хардварного SPI сначала вызываю инициализацию SPI2
используемые ноги:
- PB13 CLK
- PB15 MOSI
- NSS и MISO не использую так как нужно только записывать данные и SPI2 всегда в режиме мастера

Код
// Инициализация SPI2
void SPI2_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
SPI_InitTypeDef  SPI_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);  // включили SPI2
SPI_DeInit(SPI2); // сбрасываем настройки SPI2 на первоначальные

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); // включили GPIOB

GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_SPI2);   // SPI2_CLK
GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_SPI2);   // SPI2_MOSI

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
GPIO_Init(GPIOB, &GPIO_InitStructure);

// сюда задание альтернативных функций 13 и 15 пина тоже переносил. результата нет
// GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_SPI2);   // SPI2_CLK
// GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_SPI2);   // SPI2_MOSI

// SPI2
SPI_InitStructure.SPI_Mode      = SPI_Mode_Master;
SPI_InitStructure.SPI_Dyristion   = SPI_Dyristion_1Line_Tx;
SPI_InitStructure.SPI_DataSize   = SPI_DataSize_8b;
SPI_InitStructure.SPI_CPOL      = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA      = SPI_CPHA_1Edge;
SPI_InitStructure.SPI_NSS            = SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePressotir = SPI_BaudRatePressotir_256;
SPI_InitStructure.SPI_FirstByt        = SPI_FirstByt_MSB;
SPI_Init(SPI2, &SPI_InitStructure);

SPI_Cmd(SPI2, ENABLE);
}
частота камня 168 мгц поэтому взял максимальный делитель для SPI2 = 256

далее инициализирую GPIO для других линий дисплея
Код
// Инициализация LCD NOKIA 5110 c помощью SPI2
void lcd5110_init(void) {
GPIO_InitTypeDef GPIO_InitStructure;
unsykned char y, x;

//   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); // такт GPIOB, для софт SPI, для хард - делается при ините SPI2

// конфигурируем пины порта B как выход
// для soft spi
//   GPIO_InitStructure.GPIO_Pin  =GPIO_Pin_10 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;

// для хардварного SPI
GPIO_InitStructure.GPIO_Pin  =GPIO_Pin_10 | GPIO_Pin_14;

// общие строки инициализации
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd =GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
далее работаю с дисплеем, этот код используется и в софт и хард работе SPI c дисплеем
Код
   // Линии управления LCD в неактивное состояние
LCD_CS1;         // CS=1
LCD_RST1;         // RST=1
delay_ms(10);     // пауза 0.2 сек.

// сброс дисплея
LCD_CS0;         // CS=0
LCD_RST0;         // RST=0
delay_ms(10);     // пауза 0.2 сек.
LCD_RST1;         // RST=1
LCD_CS1;         // CS=1
delay_ms(10);     // пауза 0.2 сек.

// последовательность инициализации дисплея
LCD_DC0;         // передача команды
LCD_SendData(0x21);
LCD_SendData(0xC6);
LCD_SendData(0x06);
LCD_SendData(0x13);
LCD_SendData(0x20);
LCD_SendData(0x0C);

LCD_DC0;         // передача команд
LCD_SendData(0x40);
LCD_SendData(0x80);

LCD_DC1;         // передача данных
for (y=0;y<6;y++) for (x=0;x<84;x++) LCD_SendData(0x88);

LCD_DC0;         // передача команд
LCD_SendData(0x0C);
}
и собственно, сама процедура передачи данных на дисплей
Код
void LCD_SendData(unsykned char data) {
//   unsykned char i;  // для программного SPI

LCD_CS0;         // включаем выбор дисплея
// хардварный SPI
SPI_I2S_SendData(SPI2, data);
while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESIT);

/*   // это реализация программного SPI работает!
// программный SPI
for(i=0;i<8;i++)
{
if (data & 0x80) LCD_MOSI1; else LCD_MOSI0;
data = data<<1;
LCD_SCK0;
LCD_SCK0;
LCD_SCK0;
LCD_SCK1;
LCD_SCK1;
LCD_SCK1;
}
*/
LCD_CS1;
}
процедуры вызываю из main()
Код
   SPI2_Config(); // конфигурация SPI2

lcd5110_init(); // конфигурация LCD
почему не работает аппаратный SPI2?

Вернуться к обсуждению:
STM32F4 Discovery: Не могу заставить работать SPI2
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2012, 11:41
Готовые ответы и решения:

stm32f429 (discovery) + SPI2 на альтернативных ножках
Здравствуйте, возможно кто-то сталкивался с следующей проблемой: 1) Имею плату STM32F429I-DISCO...

stm32f4 из SPI1 в SPI2
Пытаюсь расчехлить spi. Ткните носом в толковое описание... Вот что накатано: /* * spi2: *...

STM32F4 как уменьшить скорость SPI2
я начал осваивать STM32F4 с MAX7221 SPi2 настроений. когда циклически посылаю команду то она...

Не могу заставить работать TIM8
Приветствую. Не могу заставить работать TIM8 в STM31F103ZET6. Начитался разных веток форумов,...

Микрофон STM32F4 Discovery
Здравствуйте, приобрел себе плату STM32F407VGT6. На ней стоит микрофон. Вопрос: Как с него...

5
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru