Stm32 с чего начать изучение...
-
Professor Chaos
- Открыл глаза
- Сообщения: 41
- Зарегистрирован: Вс мар 21, 2021 11:06:04
Re: Stm32 с чего начать изучение...
[uquote="TEPEM",url="/forum/viewtopic.php?p=4137060#p4137060"]Наверняка есть какой нибудь костыль, Сишка вроде может все на свете сделать[/uquote]
Вы, вместо того, что костыли лепить, опишите зачем вам это. Что вы хотите этим костылём добиться.
Наверняка имеется иное, нормальное решение вашей задачи без костылей.
Вы, вместо того, что костыли лепить, опишите зачем вам это. Что вы хотите этим костылём добиться.
Наверняка имеется иное, нормальное решение вашей задачи без костылей.
- Реклама
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Stm32 с чего начать изучение...
TEPEM, попробуй longjmp..
- Реклама
гостевая2
- TEPEM
- Нашел транзистор. Понюхал.
- Сообщения: 153
- Зарегистрирован: Чт дек 05, 2019 16:28:11
- Откуда: Самара
Re: Stm32 с чего начать изучение...
[uquote="VladislavS",url="/forum/viewtopic.php?p=4137097#p4137097"]Проблема XY обнаружена.[/uquote]
Мое почтение Владислав! Как что то делаю, всегда захожу в наш топик на форуме и качаю ваши библиотеки)
На самом деле все уже решил. Делал аргонник ради забавы из ручника, ну осцил прикрутил, клапан, пульс прикрутил, и хотел по легкой алгоритм всяких ошибок и вариантов работы так решить. Как всегда вышло коряво но работает)
Но интерес остался на самом деле, хотя уже сказали что это не реализовать( Я думал есть что то для этого.
Longjmp что то интересное, что то не помню такого в КиР, описание в вики скудное(
Мое почтение Владислав! Как что то делаю, всегда захожу в наш топик на форуме и качаю ваши библиотеки)
На самом деле все уже решил. Делал аргонник ради забавы из ручника, ну осцил прикрутил, клапан, пульс прикрутил, и хотел по легкой алгоритм всяких ошибок и вариантов работы так решить. Как всегда вышло коряво но работает)
Но интерес остался на самом деле, хотя уже сказали что это не реализовать( Я думал есть что то для этого.
Longjmp что то интересное, что то не помню такого в КиР, описание в вики скудное(
-
Professor Chaos
- Открыл глаза
- Сообщения: 41
- Зарегистрирован: Вс мар 21, 2021 11:06:04
Re: Stm32 с чего начать изучение...
Там этого нет. Это ассемблер. Причём даже не ARM, а C51.TEPEM писал(а):не помню такого в КиР
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: Stm32 с чего начать изучение...
Инструменты нужно осваивать, но не до фанатизма ассемблера! Когда же творить? 20 лет назад в экселе распознавал образы, 10 лет назад на тиньке в Бейсике делал фантастические проекты, а сейчас осваиваю инструменты для работы с stm32H743 и это уже самоцель!:(
- Реклама
гостеваая 3
- TEPEM
- Нашел транзистор. Понюхал.
- Сообщения: 153
- Зарегистрирован: Чт дек 05, 2019 16:28:11
- Откуда: Самара
Re: Stm32 с чего начать изучение...
Что то все перепробовал, почему может не очищаться флаг?

Спойлер

- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Stm32 с чего начать изучение...
Точно TXE не устанавливается? Может, где-то в другом месте зависает?
Если именно здесь, то получается, что перед этим что-то вырубает SPI, как раз после SPI->DR = dat;
Если именно здесь, то получается, что перед этим что-то вырубает SPI, как раз после SPI->DR = dat;
- TEPEM
- Нашел транзистор. Понюхал.
- Сообщения: 153
- Зарегистрирован: Чт дек 05, 2019 16:28:11
- Откуда: Самара
Re: Stm32 с чего начать изучение...
Я разобрался спс. Метод тыка самый полезный метод. Все регистры по пять раз перебрал, оказалось биты в AFR записываются из расчета с права младшие, хз де логика
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Stm32 с чего начать изучение...
TEPEM, функция Send_CMD - целый табун ошибок. Давай её текст сюда в нормальном виде, будем разбирать.
-
Professor Chaos
- Открыл глаза
- Сообщения: 41
- Зарегистрирован: Вс мар 21, 2021 11:06:04
Re: Stm32 с чего начать изучение...
Зачем подряд дважды делать операцию чтение-модификация-запись над одним и тем же регистром?TEPEM писал(а):Что то все перепробовал
Код: Выделить всё
GPIOA->ODR &= ~(1<<4); // CS=0
GPIOA->ODR &= ~(1<<2); // DC=0
Код: Выделить всё
GPIOA->ODR &= ~((1<<2)|(1<<4)); // CS=0, DC=0
Код: Выделить всё
GPIOA->BRR = (1<<2)|(1<<4); // CS=0, DC=0
Код: Выделить всё
#define SPI_CNTRL_PORT GPIOA
#define DC_PIN_POS 2
#define DC_PIN_MSK (1<<DC_PIN_POS)
#define CS_PIN_POS 4
#define CS_PIN_MSK (1<<CS_PIN_POS)
SPI_CNTRL_PORT->BRR = CS_PIN_MSK|DC_PIN_MSK; // CS=0, DC=0
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Stm32 с чего начать изучение...
Это не всё, вернее не главное. Посылка буде 16 бит вместо требуемых 8.
- TEPEM
- Нашел транзистор. Понюхал.
- Сообщения: 153
- Зарегистрирован: Чт дек 05, 2019 16:28:11
- Откуда: Самара
Re: Stm32 с чего начать изучение...
[uquote="VladislavS",url="/forum/viewtopic.php?p=4137288#p4137288"]TEPEM, функция Send_CMD - целый табун ошибок. Давай её текст сюда в нормальном виде, будем разбирать.[/uquote]
Да я ее скопировал у кого то, потом добавлял что то в надежде получить результат. Поэтому и порты по очереди записаны, я разные комбинации пробовал. Логично же например, что чип селект при выборе устройства должен быть высокого уровня, а оказывается наоборот и так со всем
А разве вот это не делает 8Битный режим? SPI1->CR1 &= ~SPI_CR1_DFF;
Да я ее скопировал у кого то, потом добавлял что то в надежде получить результат. Поэтому и порты по очереди записаны, я разные комбинации пробовал. Логично же например, что чип селект при выборе устройства должен быть высокого уровня, а оказывается наоборот и так со всем
А разве вот это не делает 8Битный режим? SPI1->CR1 &= ~SPI_CR1_DFF;
Код: Выделить всё
void Send_CMD(uint8_t dat)
{ //Otpravka komand
GPIOA->ODR &= ~(1<<4) | (1<<2); //ChipSelect loy
SPI1->CR1 &= ~SPI_CR1_DFF;
while (!(SPI1->SR & SPI_SR_TXE));
SPI1->DR = dat;
while (!(SPI1->SR & SPI_SR_TXE));
while ((SPI1->SR & SPI_SR_BSY));
GPIOA->ODR |= (1<<4); //ChipSelect Up
}
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Stm32 с чего начать изучение...
[uquote="TEPEM",url="/forum/viewtopic.php?p=4137471#p4137471"]А разве вот это не делает 8Битный режим? SPI1->CR1 &= ~SPI_CR1_DFF;[/uquote]Да, я забыл, что в F4 нет FIFO в SPI. Только в даташите сказано, что этот бит дёргать надо при выключенном SPI.
А на будущее запомните про SPI->DR, он в других контроллерах "особенный".
[uquote="Professor Chaos",url="/forum/viewtopic.php?p=4137327#p4137327"][/uquote]Точно так же как нет регистра BRR. Так что, на выбор стандартноеили более оптимальное
А на будущее запомните про SPI->DR, он в других контроллерах "особенный".
[uquote="Professor Chaos",url="/forum/viewtopic.php?p=4137327#p4137327"]
Код: Выделить всё
GPIOA->BRR = (1<<2)|(1<<4); // CS=0, DC=0
Код: Выделить всё
//GPIOA->BSRR = ((1<<4)|(1<<2)) << 16;
LDR.N R1,??DataTable2
MOV R0,#+1310720
STR R0,[R1, #+0]
??DataTable2:
DATA32
DC32 0x40020018 Код: Выделить всё
//*(((volatile uint16_t *)&GPIOA->BSRR)+1) = (1<<4)|(1<<2);
LDR.N R1,??DataTable2
MOVS R0,#+20
STRH R0,[R1, #+0]
??DataTable2:
DATA32
DC32 0x4002001a- TEPEM
- Нашел транзистор. Понюхал.
- Сообщения: 153
- Зарегистрирован: Чт дек 05, 2019 16:28:11
- Откуда: Самара
Re: Stm32 с чего начать изучение...
Раз уж мы тут так здорово собрались, может просветите меня по давно волнующему вопросу
Почему нельзя порт на выход проверить на наличие там логического уровня Не работает если порт настроен на выход =(
Почему нельзя порт на выход проверить на наличие там логического уровня
Код: Выделить всё
if(GPIOB->IDR & (1<<1))Re: Stm32 с чего начать изучение...
[uquote="TEPEM",url="/forum/viewtopic.php?p=4137731#p4137731"] Не работает если порт настроен на выход =([/uquote]
Входной драйвер не работает только в аналогом режиме, в RM все расписано, даже с картинками.
Код: Выделить всё
if(GPIOB->IDR & (1<<1))Входной драйвер не работает только в аналогом режиме, в RM все расписано, даже с картинками.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Stm32 с чего начать изучение...
Всегда работало (кроме аналога само собой) - можно прямо в отладчики в ODR потыкать и убедиться, что на IDR появляется.
- TEPEM
- Нашел транзистор. Понюхал.
- Сообщения: 153
- Зарегистрирован: Чт дек 05, 2019 16:28:11
- Откуда: Самара
Re: Stm32 с чего начать изучение...
Очень странно, у меня отказалось(
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: Stm32 с чего начать изучение...
Я тут решил поработать с примерами в CubeMX. Оказалось, что примеры грузятся по умолчанию в папку "Администратор", а потом при запуске примеров сыпятся ошибки на эту папку, типа русский не понимаю. Если в другую папку, то работают. А ещё почти все примеры на типичные процы не поддерживают CubeMX, а только CubeIDE. Как это понять? Сам себя не понимает?
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: Stm32 с чего начать изучение...
Я теперь знаю с чего начать обучение - с языка си! Идеальный язык под железо, но не все так радужно. Раньше было только два железа PC и Apple, и два компилятора, а теперь тысячи процев и под каждый свой компилятор! Программисты не успевают отладить и много ошибок. Сам язык не привязан к конкретному железу, но использует множество библиотек и файлов сомнительного качества, а потом из всего собирается проект и исполняемый код и это трудно контролировать. Для творчества этот язык создавался в последнюю очередь.
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Stm32 с чего начать изучение...
[uquote="linkov1959",url="/forum/viewtopic.php?p=4163848#p4163848"]а теперь тысячи процев и под каждый свой компилятор![/uquote]
Что за чушь? Практически подо все приличные МК можно собирать посредством gcc. А под неприличные — sdcc.
А насчет "библиотек сомнительного качества" — так их только абдуринщики/калокубщики используют.
Что за чушь? Практически подо все приличные МК можно собирать посредством gcc. А под неприличные — sdcc.
А насчет "библиотек сомнительного качества" — так их только абдуринщики/калокубщики используют.