Программирование МК STM32
Главная › Форумы › Программирование микроконтроллеров › Программирование МК STM32
Помечено: STM32
- В этой теме 168 ответов, 99 участников, последнее обновление 1 год, 12 месяцев назад сделано
Sanekfps2024.
-
АвторСообщения
-
1 апреля, 2020 в 10:09 дп #21258
shumaher
УчастникЗдравствуйте. здесь есть какой нибудь код связанный микропроцессор STM32F407 с резистор переменными и с дисплеем. мне надо так, когда крутишь, на дисплей отображает цифра, от 700 до 800. когда крутишь, цифры уменьшаются или увеличиваются. среда CooCox. помогите пожалуйста.
3 апреля, 2020 в 12:48 пп #21294Losman
УчастникПриветствую во первых спасибо большое за видео уроки! Не на одном языке нету настолько доступного объяснения в таких количествах.
Подключил по вашим видео урокам tft дисплей с такими пинами
https://static-eu.insales.ru/images/products/1/428/142721452/TFT-MSD-_02.jpg
Дисплей пришел со стиком и насколько я понял из описания он touch.
Не могу разобраться как работать с тачем. Правильно ли я понимаю что если мы
использовали fsmc то работать с тачем не получится? (возможно нужно использовать еще какой-то адрес для чтения?) Пытался нагуглить какой-то пример все примеры идут через SPI. Подскажите пожалуйста что нужно использовать чтобы заставить работать тач + дисплей.3 апреля, 2020 в 6:25 пп #21338imperror
УчастникПытался нагуглить какой-то пример все примеры идут через SPI.
Добрых суток.
А это, скорее всего, и есть SPI:
LCD_CS — spi_cs
LCD_RS — spi_sck
LCD_WR — spi_mosi
LCD_RD — spi_miso4 апреля, 2020 в 3:07 пп #21341Losman
УчастникВидимо вы правы, спасибо! Попробую теперь разобраться. Вообще хотел сделать вывод FFT на дисплейчик с аудио потока, но судя по всему не получится. fsmc использует ножку PD4 (FSMC_NOE) а ножка PD4 также используется для чипа аудио RESET. Правильно ли я понимаю что можно использовать или fsmc или CS43L22? Или есть какой-то выход из ситуации?
5 апреля, 2020 в 11:19 дп #21346imperror
УчастникЯ не знаю какой у вас контроллер, но по идее можно переназначить ножку FSMC_NOE, у вас же платка LCD подключена ручками, следовательно ни что не мешает это сделать. Если чип аудио тоже не распаян на плате микроконтроллера, то можно переназначить RESET.
5 апреля, 2020 в 3:54 пп #21348Cheerful_Wind
УчастникЗдравствуйте!
Не получается использование схемы распределения памяти heap_5 в IAR_Embedded_Workbench_for_ARM_8.40.
По тексту урока 131 можно представить следующее:
#if defined ( __ICCARM__ )
__no_init static uint8_t heap_sram1[32*1024] @ «.user_heap_stack»;
#else
static __attribute__((used,section(«.user_heap_stack»))) uint8_t heap_sram1[32*1024];
#endif
uint8_t heap_sram2[32*1024];
_____________________________________
Не трудно поместить блок .user_heap_stack рядом с системным стеком и кучей после .bss:
.bss zero 0x2000’f295 0x1 tcp.o [1]
.bss zero 0x2000’f296 0x1 XShttio.o [2]
— 0x2000’f297 0xf0af«P2», part 3 of 3: 0xe000
.user_heap_stack uninit 0x2000’f298 0x8000 main.o [1]
CSTACK 0x2001’7298 0x4000 <Block>
CSTACK uninit 0x2001’7298 0x4000 <Block tail>
HEAP 0x2001’b298 0x2000 <Block>
HEAP uninit 0x2001’b298 0x2000 <Block tail>
— 0x2001’d298 0xe000
_____________________________________
heap_sram1 0x2000’f298 0x8000 Data Lc main.o [1]
heap_sram2 0x2000’01e8 0x8000 Data Gb main.o [1]
_____________________________________
Путем редактирования файла *.isf у меня не получилось разместить блок перед секцией .bss.
Я не могу сказать, что эта неделя прошла не плодотворно с точки зрения вопросов распределения памяти, но пример так и не вышел из vPortDefineHeapRegions( xHeapRegions ). Точнее из heap_5.c:
/* Check blocks are passed in with increasing start addresses. */
configASSERT( xAddress > ( size_t ) pxEnd );
______________________________________
Андрей Курниц в https://www.kit-e.ru/articles/micro/2012_11_93.php заканчивает повествование heap_4.
Буду очень признателен, если кто-нибудь подробно разжует данный фрагмент урока!10 апреля, 2020 в 6:00 пп #21403nik182
УчастникЗдравствуйте. В последней реинкарнации CUBEMX престал работать VCP он же CDC на плате blue pill. При дефолтных настройках всё компилируется, запускается, порт в виндовс поднимается, но любая попытка записи в порт приводит к ошибке обмена. Изменение размера Tx Rx буферов и применение других советов не приводит к восстановления работоспособности. На плате black pill (stm32 f401cc) всё работает без проблем. Есть ли у кого положительный опыт поднятия VCP на blue pill и последнем CUBEMX?
18 апреля, 2020 в 4:54 пп #21480invite
Участникдоброго времени суток, что то запутался с таиминогами и настроиками sdram K4D261638F подключил против всех законов физики)))
на столе проводами к F767zi, при 8 битном в память пишется первые два символа из буфера(0x37BA0F68) > (0x37373737rn), в 16 битном первые четыре (0x37BA37BArn), подтолкните в нужном направление, инициализация из урока 62 по SDRAM11 мая, 2020 в 1:41 пп #21612fisher74
УчастникДобрый день.
Решил начать осваивать SMT32, начав с Blue pill (F103c8t6). Светик, подключенный на плате к PortC13 смог зажечь, разобравшись в отличиях от F407.
А вот с морганием выходит засада: функция задержки полностью игнорируется Кейлом.123456789101112131415161718192021#include "stm32f10x.h"void mydelay(void);void mydelay(void){for (unsigned long i=0; i<2000000; i++);}int main(void){RCC->APB2ENR |= RCC_APB2ENR_IOPCEN; // включаем тактирование портаGPIOC->CRH &= ~GPIO_CRH_MODE13; // обнуляем биты модера портаGPIOC->CRH |= GPIO_CRH_MODE13_1; // выставляем скорость макс скорость порта 2МГцGPIOC->CRH &= ~GPIO_CRH_CNF13; // цифровой выход push-pullwhile(1){GPIOC->BSRR = GPIO_BSRR_BR13; // Зажигаем светик (LED включен между VCC и PortC13)mydelay(); // Ждём.... но почему-то не ждёт ((GPIOC->BSRR = GPIO_BSRR_BS13; // Тушим светикmydelay(); // Снова ждём... и снова не ждёт}}Я понимаю, что такой тип задержки самый расточительный и в практике применяться не будет, но хотелось бы разобраться в этой проблеме.
11 мая, 2020 в 3:12 пп #21613imperror
Участникvolatile void mydelay(void){
…
}Должно помочь. volatile — говорит компилятору не оптимизировать функцию.
11 мая, 2020 в 4:19 пп #21614fisher74
УчастникСпасибо, но
volatile void mydelay(void);
компилятор заворачивает варнингом <div class=»spoilerui»>function cannot return qualified void type ‘volatile void’ [-Wqualified-void-return-type]</div>
и так же игнорирует функцию.
На другие типы данных так же ругается.
А вот1234void mydelay(void){for (volatile unsigned long i=0; i<2000000; i++);}сработало. Спасибо.
P.S. И какой-то странный движок форума — не позволяет редактировать своё последнее сообщение
12 мая, 2020 в 6:35 пп #21615imperror
Участниккомпилятор заворачивает варнингом
потому что надо было делать так:
volatile void mydelay(void)
{
for ( unsigned long i=0; i<2000000; i++);
}а не только в прототипе указывать volatile
12 мая, 2020 в 6:57 пп #21616fisher74
УчастникНу уж не до такой степени ламер. Конечно же и в прототипе указывал и в самой функции.
12 мая, 2020 в 7:23 пп #21617imperror
УчастникСтранно, должно было откомпилировать, только что проверил, но у меня gcc.
13 мая, 2020 в 9:01 дп #21619Igorexa
УчастникЗдравствуйте, схема STM32H7-FMC-LCD. возможно-ли преобразовывать 1-бит(на пиксель) в 16-бит посредством dma2d? Шуршал даташит, там намек на альфабленд 1-бит режим.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.

