у WeAct есть 411RE доска?
, так что все подряд в нее пихать не надо
да, плохой пример привел))
там нада HAL_UART_Transmit_DMA использовать…
Я всё равно как доберусь до отладки буду повторно это всё спрашивать (так как пока сам руками не по делаю - часто забываю, это уже «профессиональное» после многих лет в браке).
Но Хотя бы понятно зачем оно и куды тулить. Потом правил но вопрос смогу задать (точнее более понятно
)
у WeAct есть 411RE доска?
Я удивлен, что ты удивлен )))
Если уж на нонэйме за недорого (дешевле нано) есть оригинальные чипы RE….
После двух часов моргания Windows неожиданно разразился сообщением HID устройство готово к использованию. Вот теперь думаю что с этим делать?
Ничего, встали дрова))
HID BootLoader и COM, как правило.
В диспечер глянь.
нарисовал под 411 инициализацию в CMSIS + UART + TIMmillis, все норм, доже скучновато стало.
Но вопрос про CPP любопытный:
если компилировать main.cpp - Debug через PB3 перестает работать.
достаточно опять переименовать в main.c - все взлетает.
Линковска внешних функций в С и С++ происходит по разному, видимо дебаг должен линковаться как С-исходник
@andycat , а если просто функцию вынести в .c-файл и подключить в main.cpp?
если просто функцию вынести в .c-файл и подключить в main.cpp?
попробую, попозже, но думаю все проще, достаточно добавить
extern "C"
перед функцией
int __io_putchar(int ch)
{
ITM_SendChar(ch);
return ch;
}
на досуге поэкспериментирую.
нарисовал под 411 инициализацию в CMSIS + UART + TIMmillis,
В CMSIS нет SysTick ?
Есть, я по привычке + передрал часть своего кода с stm32f303.
И сейчас уже не вспомню почему я systick не выбрал, вроде использовал его для микросекундных точных пауза.
я не меряю размер, влазит и хорошо.
Пустой не проверял, а нынешний с дисплеем uart и прочим, elf файл уже 505 килобайт.
Я вот или туплю или что то криво настроил с тактированием ![]()
st7735 128*160 SPI 1 на 50 МГц должно быть
а у меня 62 кадра в секунду ![]()
62 * 128 * 160 * 16 = 20,316 МГц
RCC->CFGR |= RCC_CFGR_SW_PLL; // 10: PLL selected as system clock
//RCC->CFGR &= ~RCC_CFGR_HPRE_DIV1; // AHB -> 0xxx: system clock not divided -> 100MHz
RCC->CFGR |= RCC_CFGR_PPRE1_DIV2; // APB1 -> 100: AHB clock divided by 2 -> 50MHz
//RCC->CFGR &= ~RCC_CFGR_PPRE2_DIV1; // APB2 -> 0xx: AHB clock not divided -> 100MHz
вроде корректно вес настроено.
вроде корректно вес настроено
я пока только в кубе могу настройку проверить, если там 50 мегагерц, то должно вытягивать, я этот дисплей мог проверить только на 27 мегагерц, на этой частоте точно работает
А я жду правильный ST-LINK
А я жду правильный ST-LINK
выше же ссылка была, от того же WeAct брал, отлично работает, UART встроенный - как доп довесок.
уже отгрузили, я взял два разных, посмотрим
PS мне бы с редактором определиться ни VI ни VIM не зашёл, нужен что-то типа npp
не люблю я тёмные темы ещё со времён ес-1840, может просто привыкнуть надо
в результате оптимизации функции заполнения экрана добился 24.903 МГц SPI, но явно это не 50, где то косяк ![]()
void f4st7735fillRect(unsigned short value, unsigned short x0, unsigned short y0, unsigned short x1, unsigned short y1) {
tftCSenable(); // chip select on
f4tftSetAddrWindow(x0, y0, x1, y1);
// 16 bit transfer mode
SPI1->CR1 &= ~SPI_CR1_SPE;
GPIOB->BSRR |= GPIO_BSRR_BS0; // PB0 HIGH
SPI1->CR1 |= SPI_CR1_DFF;
SPI1->CR1 |= SPI_CR1_SPE;
unsigned long countPix = (unsigned long)((x1-x0+1)*(y1-y0+1));
while (countPix--) {
while (!(SPI1->SR & SPI_SR_TXE));
*(volatile uint16_t *)&(SPI1->DR) = value;
}
// wait end transfer
while (!(SPI1->SR & SPI_SR_TXE) || (SPI1->SR & SPI_SR_BSY));
// return 8bit transfer mode
SPI1->CR1 &= ~SPI_CR1_SPE;
tftCSdisable(); // chip select off
SPI1->CR1 &= ~SPI_CR1_DFF;
SPI1->CR1 |= SPI_CR1_SPE;
}





