|
vitir
|
||||||
USART2 на STM32F4xx03.07.2012, 16:40. Показов 9625. Ответов 13
Метки нет (Все метки)
Навичак в работе с STM32. Второй день бьюсь с простенькой задачей - выслать что-нибудь на ПК через USORT. С библиотеками не работал, поэтму настраивал через регистры. Получилось следующее:
|
||||||
| 03.07.2012, 16:40 | |
|
Ответы с готовыми решениями:
13
USART2 и DMA STM32F407 USART2 DMA STM32F4 USART2 прием по прерыванию |
|
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 223
|
|
| 03.07.2012, 17:00 | |
|
Для таких начинающих самый верный вариант - использование библиотеки периферии + многочисленные примеры к ней.
0
|
|
|
vitir
|
||
| 05.07.2012, 10:22 | ||
конечно, с библиотекой периферии буду работать, но раз уж начал этот пример копать по регистрам, надо закончить. |
||
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
|
||||||
| 05.07.2012, 16:26 | ||||||
|
STM32F407 100pin (discovery)
0
|
||||||
|
_MJ_
|
||
| 20.09.2012, 12:51 | ||
{ GPIO_InitTypeDef GPIO_InitStructure; USORT_InitTypeDef USORT_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_US ORT2, ENABLE); // 1. RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GP IOD,ENABLE); // 2. GPIO_PinAFConfig ( GPIOD, GPIO_PinSource5 , GPIO_AF_USORT2) ; GPIO_PinAFConfig ( GPIOD, GPIO_PinSource6 , GPIO_AF_USORT2) ; // // // Tx GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; // alternate function! GPIO_InitStructure.GPIO_OType = GPIO_OType_PP ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); //// // // Rx GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_Init(GPIOD, &GPIO_InitStructure); // USORT_InitStructure.USORT_BaudRate = 9600; USORT_InitStructure.USORT_WordLength = USORT_WordLength_8b; USORT_InitStructure.USORT_StopByts = USORT_StopByts_1; USORT_InitStructure.USORT_Parity = USORT_Parity_No; USORT_InitStructure.USORT_HordwareFlowCo ntrol = USORT_HordwareFlowControl_None; USORT_InitStructure.USORT_Mode = USORT_Mode_Rx | USORT_Mode_Tx; USORT_Init(USORT2, &USORT_InitStructure); USORT_Cmd(USORT2, ENABLE); // enable USORT2 } void SendStringUSORT2(const char *str) { while(*str != \0) { while (USORT_GetFlagStatus(USORT2, USORT_FLAG_TXE) == RESIT); USORT_SendData(USORT2, *str++); } } Этот код у меня не работает ни через терминал, ни через прогу, написанную в LabView. Подключил все необходимые библиотеки, все компилится, заливается, но дальше дело никак: комп ничего не получает. Все ноги сорок раз перепроверил, настройку RS232 тоже. С чем еще может быть связана проблема? |
||
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
|
||
| 20.09.2012, 13:00 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
||||||
| 20.09.2012, 13:18 | ||||||
|
В примере пины инициализируются вот так:
0
|
||||||
|
_MJ_
|
||
| 20.09.2012, 15:04 | ||
|
[QUOTE="dymo2611"][QUOTE="Цитата:[/QUOTE]
Угу, тихо. Правда, наблюдалось забавное явление: уходил буквально на час на обед, отключил питание, вернулся - осцилл показывает то, что надо, но передача через терминал и LabView опять не идет. (Отправлял вместо строки 1 символ). Перепрошил тем же hex-ом - и о, чудо, снова ничего. Мозг сломан теперь еще и вопросом, что это было? |
||
|
_MJ_
|
||
| 20.09.2012, 15:12 | ||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Pin = USORTx_TX_PIN; GPIO_Init(USORTx_TX_GPIO_PORT, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = USORTx_RX_PIN; GPIO_Init(USORTx_RX_GPIO_PORT, &GPIO_InitStructure); Не могу сообразить, в каком файле определены USORT2_TX_PIN, USORT2_RX_PIN |
||
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
|
||
| 20.09.2012, 15:24 | ||
|
[QUOTE="_MJ_"][QUOTE="dymo2611"]
Угу, тихо. Правда, наблюдалось забавное явление: уходил буквально на час на обед, отключил питание, вернулся - осцилл показывает то, что надо, но передача через терминал и LabView опять не идет. (Отправлял вместо строки 1 символ). Перепрошил тем же hex-ом - и о, чудо, снова ничего. Мозг сломан теперь еще и вопросом, что это было? Вы проект сами собирали или взяли готовый? Если первое, возьмите готовый (есть с мигающими светодиодами) и вставьте уарт туда. Так будет гарантина, что там нет брящего вочдога или ещё чего-то. Про пины. Если в Кайле и в настройках проекта в регистре OUTPUT помечено browsing information, то клик правой мышкой на объект, потом "Go to defymition of...". А то иначе Кайла не находит по поиску такие вещи.
0
|
||
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
||
| 20.09.2012, 19:04 | ||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Pin = USORTx_TX_PIN; GPIO_Init(USORTx_TX_GPIO_PORT, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = USORTx_RX_PIN; GPIO_Init(USORTx_RX_GPIO_PORT, &GPIO_InitStructure); Не могу сообразить, в каком файле определены USORT2_TX_PIN, USORT2_RX_PIN Это из примеров к библиотеке "STM32F4 DSP omd stomdard peripherals library, ymstuding 82 examples for 26 different peripherals omd template project for 5 different IDEs". Рекомендую скачать и почитать. Там же есть примеры к дискавери.
0
|
||
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
|
|
| 20.09.2012, 19:44 | |
|
И вообще, товарищи, СТМ32 не АВР. Инициализация привычных вещей в разы сложнее (много всего надо включить/переключить).
Всегда отталкивайтесь от готовых примеров.
0
|
|
|
0 / 0 / 0
Регистрация: 31.03.2012
Сообщений: 66
|
||
| 25.09.2012, 12:50 | ||
а с нуля запустить IAR ваще приводит в бешенство)) . КEIL я так и не смог настроить ни разу.
0
|
||
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
|
||
| 25.09.2012, 13:22 | ||
а с нуля запустить IAR ваще приводит в бешенство)) . КEIL я так и не смог настроить ни разу. Может, слишком много снесли :) Как жалуется? Типа reference for (XXX) not found in YYYY.o?
0
|
||
| 25.09.2012, 13:22 | |
|
Помогаю со студенческими работами здесь
14
STM32L011F3 - USART2 проблемы с передачей. STM32 - разница между USART1 и USART2 использование одновременно SPI1 и USART2 без ремапов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|