STM32 новичку в ARM что к чему
Re: STM32 новичку в ARM что к чему
Уважаемые владельцы STM32F3-Discovery, имеющие его наличии, может кто даст или выставит сюда файл (main.c SPI2 8-bit mode for STM32F3-Discovery ) типа непрерывно передающий через SPI2 допустим 2 байта типа 0хF6 и 0хА5 с целью наблюдения на экране тактирования и данных двумя лучами; А вот эти 2 байта 0хF6 и 0хА5 нужны для четкого определения, где его хвост и где грива. Меня интересует только «SPI2 8-bit mode» с «SPI2 16-bit mode» справился, но большие потери времени в пустую.
З.Ы. Опыт с STM32F1 и (4)-Discovery «SPI2 8-bit mode», не помог там это без проблем. Спасибо авансом, за руку помощи!!
З.Ы. Опыт с STM32F1 и (4)-Discovery «SPI2 8-bit mode», не помог там это без проблем. Спасибо авансом, за руку помощи!!
- Реклама
Re: STM32 новичку в ARM что к чему
Arpad, Шо тяжко быдлокодить не читая даташита ?
Кусок из main
Под F0, SPI там одинаковый .
CS(NSS) дергается аппаратно .
Исправил.
Нарушение Правил форума п. 2.6
http://radiokot.ru/forum/viewtopic.php?f=19&t=6538
aen
Код: Выделить всё
#define SPI1_DR_8b (*(__IO uint8_t *)((uint32_t)SPI1 + 0x0C))
void SPI1_init(void)
{
RCC->AHBENR |=RCC_AHBENR_GPIOAEN;
RCC->APB2ENR |=RCC_APB2ENR_SPI1EN;
GPIOA->MODER &=~
GPIO_MODER_MODER4 |
GPIO_MODER_MODER5 |
GPIO_MODER_MODER6 |
GPIO_MODER_MODER7
;
GPIOA->MODER|=
GPIO_MODER_MODER4_1|
GPIO_MODER_MODER5_1|
GPIO_MODER_MODER6_1|
GPIO_MODER_MODER7_1
;
GPIOA->OSPEEDR|=
GPIO_OSPEEDER_OSPEEDR4|
GPIO_OSPEEDER_OSPEEDR5|
GPIO_OSPEEDER_OSPEEDR6|
GPIO_OSPEEDER_OSPEEDR7
;
SPI1->CR1 |=
SPI_CR1_BR_0 | //
SPI_CR1_MSTR
;
SPI1->CR2 = 0x700; // 8 bit
SPI1->CR2 |=SPI_CR2_SSOE|SPI_CR2_NSSP;
SPI1->CR1 |= SPI_CR1_SPE;
}
void SPI_Send (unsigned char data)
{
SPI1_DR_8b = data;
while(SPI1->SR & SPI_SR_BSY);
}
Код: Выделить всё
while (1)
{
SPI_Send(0xAA);
SPI_Send(0x55);
Delay_mS(1);
}Под F0, SPI там одинаковый .
CS(NSS) дергается аппаратно .
Спойлер

Исправил.
Нарушение Правил форума п. 2.6
http://radiokot.ru/forum/viewtopic.php?f=19&t=6538
aen
Re: STM32 новичку в ARM что к чему
Arpad писал(а):Уважаемые владельцы STM32F3-Discovery, имеющие его наличии, может кто даст или выставит сюда файл (main.c SPI2 8-bit mode for STM32F3-Discovery )
Демонстрируй свой интелект полным готовым к загрузке кодом и STM32F3-Discovery обсудит кто есть кто, и все мы тебе скажем спасибо!!!dosikus писал(а):Arpad, Шо тяжко быдлокодить не читая даташита ?![]()
Ждемс, с нетерпением вместе с владельцами STM32F3-Discovery чтобы проверить как будет все в натуре энто ???
Re: STM32 новичку в ARM что к чему
Я дал все что нужно, осталось только в рот положить ...Arpad писал(а): Демонстрируй свой интелект полным готовым к загрузке кодом и STM32F3-Discovery обсудит кто есть кто, и все мы тебе скажем спасибо!!!
?
Re: STM32 новичку в ARM что к чему
"Не плюй в руку тебе подающую!"(С)Arpad писал(а):Демонстрируй свой интелект полным готовым к загрузке кодом
Вам уже всё объяснили... уберите с инита хардварный NSS... отправляйте напрямую, без функций... и проверяйте TXE...
"Я не даю готовых решений, я заставляю думать!"(С)
- Реклама
Re: STM32 новичку в ARM что к чему
Сенкс за пинок, NSS правда оставил - зато с TXE , его ширина стала 83.3 nS против 1.5 uS что было с BSY ...HHIMERA писал(а):уберите с инита хардварный NSS... отправляйте напрямую, без функций... и проверяйте TXE...
Спойлер

Исправил.
Нарушение Правил форума п. 2.6
http://radiokot.ru/forum/viewtopic.php?f=19&t=6538
aen
Re: STM32 новичку в ARM что к чему
Все начинающие вместе со мной Ждемс, "Качественный код" от всех гуру, снисходте до нас джедаи!
С нетерпением вместе с владельцами STM32F3-Discovery чтобы проверить как будет все в натуре энто ???
С нетерпением вместе с владельцами STM32F3-Discovery чтобы проверить как будет все в натуре энто ???
- Вложения
-
- Foto_SPI.rar
- (165.78 КБ) 174 скачивания
Re: STM32 новичку в ARM что к чему
Убрал NSS полилось сплошным потоком . Правда анализатор теперь хрен разберет .
Хотя нет - дернуть CS перед посылкой и все чудно .
Исправил.
Нарушение Правил форума п. 2.6
http://radiokot.ru/forum/viewtopic.php?f=19&t=6538
aen
Код: Выделить всё
#define SPI1_DR_8b (*(__IO uint8_t *)((uint32_t)SPI1 + 0x0C))
void SPI1_init(void)
{
RCC->AHBENR |=RCC_AHBENR_GPIOAEN;
RCC->APB2ENR |=RCC_APB2ENR_SPI1EN;
GPIOA->MODER &=~
//GPIO_MODER_MODER4 |
GPIO_MODER_MODER5 |
GPIO_MODER_MODER6 |
GPIO_MODER_MODER7
;
GPIOA->MODER|=
//GPIO_MODER_MODER4_1|
GPIO_MODER_MODER5_1|
GPIO_MODER_MODER6_1|
GPIO_MODER_MODER7_1
;
GPIOA->OSPEEDR|=
GPIO_OSPEEDER_OSPEEDR4|
GPIO_OSPEEDER_OSPEEDR5|
GPIO_OSPEEDER_OSPEEDR6|
GPIO_OSPEEDER_OSPEEDR7
;
SPI1->CR1 |=
SPI_CR1_BR_0 | //
SPI_CR1_MSTR |
SPI_CR1_SSI |
SPI_CR1_SSM
;
SPI1->CR2 = 0x700; // 8 bit
SPI1->CR1 |= SPI_CR1_SPE;
}
void SPI_Send (unsigned char data)
{
while((SPI1->SR & SPI_SR_TXE) == RESET);
SPI1->DR = data;
}Хотя нет - дернуть CS перед посылкой и все чудно .
Спойлер

Исправил.
Нарушение Правил форума п. 2.6
http://radiokot.ru/forum/viewtopic.php?f=19&t=6538
aen
Последний раз редактировалось dosikus Пт сен 06, 2013 14:37:50, всего редактировалось 4 раза.
Re: STM32 новичку в ARM что к чему
Слушай, хватит юродствовать. Все выложено . Копипасть и компилируй.Arpad писал(а):Все начинающие вместе со мной Ждемс, "Качественный код" от всех гуру, снисходте до нас джедаи!
Re: STM32 новичку в ARM что к чему
dosikus писал(а):Слушай, хватит юродствовать. Все выложено . Копипасть и компилируй.Arpad писал(а):Все начинающие вместе со мной Ждемс, "Качественный код" от всех гуру, снисходте до нас джедаи!
Какие магические слова надо вписать
SPI2->CR2 = 0x....;
SPI2->CR1 = 0x....;
Re: STM32 новичку в ARM что к чему
"Магические слова" это к SPL . Код тремя постами выше посмотреть лень ?Arpad писал(а):
Какие магические слова надо вписать
Re: STM32 новичку в ARM что к чему
Код: Выделить всё
while(1)
{
while((SPI1->SR & SPI_SR_TXE) == RESET); // Wait for SPI Tx Buffer Empty
SPI1_DR_8b = 0xF6;
while((SPI1->SR & SPI_SR_TXE) == RESET); // Wait for SPI Tx Buffer Empty
SPI1_DR_8b = 0xA5;
}
Спойлер
Исправил.
Нарушение Правил форума п. 2.6
http://radiokot.ru/forum/viewtopic.php?f=19&t=6538
aen
- Вложения
-
- SPI_F6A5.png
- (49.85 КБ) 1237 скачиваний
Re: STM32 новичку в ARM что к чему
Уважаемые рабочая лошадка должна быть не 24МГц = STM32F100 а именно STM32F303 = 72МГцdosikus писал(а):З.Ы. Опыт с STM32F1 и (4)-Discovery «SPI2 8-bit mode», не помог там это без проблем. Спасибо авансом, за руку помощи!!Arpad писал(а): Какие магические слова надо вписать
"Магические слова" это к SPL . Код тремя постами выше посмотреть лень ?
на 100 и 407 как писал 8-бит без проблем!
На 303 что получилось ниже.
- Вложения
-
- 2 байта_0хF6 и 0хА5 8-bit.png
- (76.46 КБ) 299 скачиваний
Re: STM32 новичку в ARM что к чему
Уважаемый... не учите мну как надо трахать SPI!!!Arpad писал(а): Уважаемые рабочая лошадка должна быть не 24МГц = STM32F100 а именно STM32F303 = 72МГц
Вышеприведённые эпюры и код не для STM32F100, а для STM32F051... у STM32F051 и STM32F303 SPI одинаковый!!!
А частоты были приведены изменением RCC_CFGR_PLLMULL для того, чтобы не попортить времянку, и чтобы USB-смотрелко смогла отразить правильность и непрерывность передачи...
Короче... такая же картинка будет и на другой частоте... если средства отображения позволяют это...
"Я не даю готовых решений, я заставляю думать!"(С)
Re: STM32 новичку в ARM что к чему
А, я понял ... Он 24МГц увидел на скринах. Похоже все еще хуже , пациент безнадежен ... 
Re: STM32 новичку в ARM что к чему
При таких гуру вопрос был задан вопрос - переход из SPI2 16-bit на SPI2 8-bit ответ получил вместо качественного сена,Arpad писал(а):Уважаемые владельцы STM32F3-Discovery, имеющие его наличии, может кто даст или выставит сюда файл (main.c SPI2 8-bit mode for STM32F3-Discovery ) типа непрерывно передающий через SPI2 допустим 2 байта типа 0хF6 и 0хА5 с целью наблюдения на экране тактирования и данных двумя лучами; А вот эти 2 байта 0хF6 и 0хА5 нужны для четкого определения, где его хвост и где грива. Меня интересует только «SPI2 8-bit mode» с «SPI2 16-bit mode» справился, но большие потери времени в пустую.
З.Ы. Опыт с STM32F1 и (4)-Discovery «SPI2 8-bit mode», не помог там это без проблем. Спасибо авансом, за руку помощи!!
сказку о гнилой соломе. Не зря сказано - "Кто не умеет делать - тот учит". Или что еще лучше, пишет учебник.
Американский форум- задал вопрос, тебе на него обстоятельно и вежливо ответят.
Еврейский форум- задал вопрос, тебе зададут встречный вопрос.
Русский форум - задал вопрос, тебе ещё 2 часа будут объяснять какой ты мудак!
- Вложения
-
- zadanyije i simuljator.rar
- (967.41 КБ) 180 скачиваний
Re: STM32 новичку в ARM что к чему
Arpad , ну можешь начинать ощущать себя мудаком .
Тебе дали код который делает именно то что тебе надо . SPI настроен на 8ми битные посылки
Но тебе приспичило паузу между посылками . Делай задержку.
Вот только можешь внятно и доходчиво - зачем тебе эта пауза ?
Если это для дисплеев от сотовых - там это на хрен не нужно .
На ST7735R, то что на скрине , там CS вообще не дергаю, тем более что там 16 битные посылки .
Выше кусок кода из инита nokia 1200 - так же льется потоком.
Тебе дали код который делает именно то что тебе надо . SPI настроен на 8ми битные посылки
Но тебе приспичило паузу между посылками . Делай задержку.
Код: Выделить всё
while (1)
{
SPI_Send(0xAA);
Delay_mS(1);
SPI_Send(0x55);
Delay_mS(10);
}Вот только можешь внятно и доходчиво - зачем тебе эта пауза ?
Если это для дисплеев от сотовых - там это на хрен не нужно .
На ST7735R, то что на скрине , там CS вообще не дергаю, тем более что там 16 битные посылки .
Выше кусок кода из инита nokia 1200 - так же льется потоком.
Re: STM32 новичку в ARM что к чему
Ну что сказать... Русский форум, как всегда, рулит... на нём самые точные и правильные ответы...Arpad писал(а):был задан вопрос - переход из SPI2 16-bit на SPI2 8-bit
Приведите свой код для SPI2 16-bit... потому что в ваших весёлых картинках чёрт ногу сломит, то один режим, то другой... а вопрос прозвучал так... что трёхголовый змей и то выразился бы конкретнее...
Там разница в определении регистра данных для SPI 8-bit... по умолчанию SPIx->DR - 16-bit...
#define SPI2_DR_8b (*(__IO uint8_t *)((uint32_t)SPI2 + 0x0C))
потому что иначе будет бред-передача... и...
SPI2->CR2 = 0x700; // 8 bit
потому что при попытке затолкать в SPIх->CR2 что-то левое автоматом происходит переход в режим передачи 16-bit...
И ещё... "непрерывно" в STM32... это передача по SPI без зазоров между передаваемыми данными... выражайте свои мысли и хотелки точнее...
"Я не даю готовых решений, я заставляю думать!"(С)
Re: STM32 новичку в ARM что к чему
HHIMERA, скрин ему выложи, на слова не верит .
Обязательно с паузой ...
У меня все на работе.
Обязательно с паузой ...
У меня все на работе.
Re: STM32 новичку в ARM что к чему
вопрос - переход из SPI2 16-bit на SPI2 8-bitdosikus писал(а):HHIMERA, скрин ему выложи, на слова не верит .![]()
Обязательно с паузой ...![]()
У меня все на работе.
- Вложения
-
- DSC03321.JPG
- (35.7 КБ) 440 скачиваний
-
- DSC03320.JPG
- (29.52 КБ) 439 скачиваний
-
- F3_spi16rb.rar
- (425.11 КБ) 221 скачивание


