Для обработки энкодера используются два канала таймера, то есть в этом случае они работают как входы. Эти же каналы можно использовать как выходы, для генерации шим. Как МК определяет как настроить канал?
Добрый день, подскажите пожалуйста как включить поддержку FSMC в 407. У 103 серии для этого можно было установить пару галочек, а для 407 предлагается генерировать код в Cube, можно ли как-то это сделать без Cube, но с помощью HAL?
Добрый день, подскажите пожалуйста как включить поддержку FSMC в 407. У 103 серии для этого можно было установить пару галочек, а для 407 предлагается генерировать код в Cube, можно ли как-то это сделать без Cube, но с помощью HAL?
Пытаюсь завести в железе UART1 в STM32F030. Написал такой код: Спойлер
Код:
//---------- Настройка портов ввода-вывода (SPL) ---------- GPIO_InitTypeDef GPIO_Init_struct; //Объявляем структуру для настройки порта GPIO_StructInit(&GPIO_Init_struct); //Заполняем структуру начальными значениями
//Разрешаем тактирование шины порта A и B RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA | RCC_AHBPeriph_GPIOB, ENABLE);
//Режим работы портов - медленный, до 2МГц GPIO_Init_struct.GPIO_Speed = GPIO_Speed_2MHz;
//Настройка порта А GPIO_Init_struct.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; //Настройка выводов 6 и 7 GPIO_Init_struct.GPIO_Mode = GPIO_Mode_OUT; GPIO_Init(GPIOA, &GPIO_Init_struct); //Применяем настройки порта А
//Для порта B //RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); //Разрешаем тактирование шины порта B GPIO_Init_struct.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; //Настройка выводов 0 и 1 //(остальные настройки как для предыдущего порта) GPIO_Init(GPIOB, &GPIO_Init_struct); //Применяем настройки порта B
//Разрешим генерировать прерывание по приему и передачи USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
USART_Cmd(USART1, ENABLE);//Разрешаем использовать UART
USART_SendData(USART1,0xAA); <----------
NVIC_EnableIRQ(USART1_IRQn); //Разрешаем прерывания от UART1
//--- конец настройки UART
Не работает! Причем при включении прерывание хотя бы 1 раз генерится и уходит на ошибку "Framing error" (смотрел что в регистре ISR). Вставил в код строчку (тест) чтобы посмотреть, работает ли вообще передатчик. В итоге на ноге PA9 код 0xAA не выдается (смотрел запоминающим осцилом по триггеру) . Более того, эта нога почему-то смотрится как вход - если не подключена - на ней напряжение коло 0, если подтягиваю к плюсу через резистор 10 кОм - на ней питание. В чем дело?
This bit is set and cleared by software to select the USART1 clock source.
00: PCLK selected as USART1 clock source (default) 01: System clock (SYSCLK) selected as USART1 clock 10: LSE clock selected as USART1 clock 11: HSI clock selected as USART1 clock
Часто может оказаться более удобным использовать для тактирования HSI, т.к. в этом случае настройки последовательного порта не зависят ни от каких изменений в схеме тактирования МК. В функции инициализации порта можно сразу вставить "рыбу":
Ни к чему эти выкрутасы. В референсе черным по белому написано:
Не знаете матчасть, dosikus.
В отличие от dosikus, вы не знаете ни матчасть, ни математику. Ваша безграмотность просто безмерна. Хотя занятия в школе уже давно начались, вы продолжаете их упорно прогуливать. Про "выкрутасы" было особенно смешно.
В отличие от dosikus, вы не знаете ни матчасть, ни математику. Ваша безграмотность просто безмерна. Хотя занятия в школе уже давно начались, вы продолжаете их упорно прогуливать. Про "выкрутасы" было особенно смешно.
Доставляет, как вы старательно избегаете любых подробностей и технических деталей. Только вопли. Страшит проколоться и загреметь вслед за досикусом? Согласен, вам есть чего опасаться.
Второй пример для восьмибитного семплирования. Найдется не сильно много случаев, когда использование этого режима будет оправдано.
Учитывая вашу маниакальную привычку к ногодрыгу, вам 98% режимов периферии не нужны ни под каким соусом. Однако не стоит так настойчиво выдавать это за правило.
Вы показываете, что для разных пар делимое/делитель, частное может быть одним и тем же числом? Ну да, это арифметика. Или вы что таким образом хотели сказать?
Вы показываете, что для разных пар де6лимое/делитель, частное может быть одним и тем же числом? Ну да, это арифметика. Или вы что таким образом хотели сказать?
Я хотел сказать, что желательно округлять результат деления до ближайшего целого(даже если не используется 8-ми битное семплирование). Для этого обычно к делимому добавляют половинку baudRate, что код dosikusa и делает.
Вам бы с галлюцинациями своими как-нибудь разобраться
Не с моими, а с вашими. Тут хватит нескольких ваших последних постов. То у вас "индусы" не тот код пишут, то у вас разрабы СТМ ненужные режимы в МК впихнули, то dosikus матчасть не знает, то учителя в школе вас делению с округлением не научили. А вы точно свой диагноз "Дартаньян" у психиатра оспаривать не будете?
Не знаете матчасть, dosikus. На F0хх прием конкретного символа можно отслеживать аппаратно, хоть с вызовом прерывания по данному событию.
Научился читать документацию? Значит наши пинки даром не прошли. Тебе болезному сообщаю, эту фичу уже год как гоняю в modbus и RTU и ASCII вместе с CRC, а то что скопипастил сюда - наброски трехлетней давности. Но ты продолжай, продолжай...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения