Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1

Nucleo-L152RE board : перестал работать USART2

23.07.2018, 20:04. Показов 1779. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я в Кубе создал новый проект для платы Nucleo-L152RE и указал в нем USORT2 для вывода текста на экран компьютера, через PuTTY. Если я правильно понял даташит, то USORT2 не требует дополнительных переходников, она выводит текст посредством Virtual COM, через который плата прошивается.


Тем не менее экран PuTTY пустой. Код простейший:

C
1
2
3
4
5
6
7
8
9
while (1)
  {
 
  /* USER CODE END WHILE */
 
  /* USER CODE BEGIN 3 */
      HAL_UART_Transmit( &huart2, "Send Slave Send\r\n", 18, 100);
  }
  /* USER CODE END 3 */
Я прогонял код построчно, с заходом внутрь функции HAL_UART_Transmit, но там вроде все в порядке. Помогите разобраться, пожалуйста, в чем проблема ?

Добавлено через 21 минуту
Код судя по всему работает исправно. В Device Manager'e сказано, что Virtual COM работает исправно. Менял кабель - плату прожигает, но обратно в PuTTY не печатает. Baudrate 9600 в коде и в PuTTY совпадает...


Что еще может быть ?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.07.2018, 20:04
Ответы с готовыми решениями:

Проект DAC на плате Nucleo-L152RE
Хочу попробовать сделать проект с DAC, но пока нет идей. От производителя пример слишком простой - на осциллоскоп выводится значение 0xFF....

Два Nucleo board'a по SPI
У меня есть два одинаковых Нуклео борда. Хочу их соединить по SPI. Но сначала непонятно как их прошить на одном ноуте так, чтобы один был...

Переход из online в offline IDE при программировании Nucleo-L152RE
Народ ну во первых с наступающим всех вас !!! Теперь суть проблемы, в интернете нашел одноименную статью только для Nucleo-F401RE,...

12
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
23.07.2018, 21:27  [ТС]
Вижу просто черный экран с курсором, хотя, если хочу прожечь плату, то прожигается...


0
 Аватар для _SayHello
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
23.07.2018, 22:39
max_sk, возьмите за правило, если хотите решения проблемы тогда давайте полный код с инициализацией. Это ускорит получение ответов.

Добавлено через 46 секунд
Помимо баудрейта, есть еще параметры четности и стоп биты.
1
 Аватар для Евгений В
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,279
24.07.2018, 14:03
Может тайм-аут больше поставить, например 1000? И количество передаваемых символов у вас 17 а не 18

И задержку сделайте между отправками сообщений.
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
24.07.2018, 20:20  [ТС]
Выкладываю код :

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "stm32l1xx_hal.h"
 
/* USER CODE BEGIN Includes */
 
/* USER CODE END Includes */
 
/* Private variables ---------------------------------------------------------*/
SPI_HandleTypeDef hspi1;
 
UART_HandleTypeDef huart2;
 
/* USER CODE BEGIN PV */
/* Private variables ---------------------------------------------------------*/
 
/* USER CODE END PV */
 
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USORT2_UART_Init(void);
static void MX_SPI1_Init(void);
 
/* USER CODE BEGIN PFP */
/* Private function prototypes -----------------------------------------------*/
 
/* USER CODE END PFP */
 
/* USER CODE BEGIN 0 */
 
/* USER CODE END 0 */
 
/**
  * @brief  The application entry point.
  *
  * @retval None
  */
int main(void)
{
  /* USER CODE BEGIN 1 */
uint8_t SendBuf[]="Slave Send";
uint8_t ReceiveBuf[11];
  /* USER CODE END 1 */
 
  /* MCU Configuration----------------------------------------------------------*/
 
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
 
  /* USER CODE BEGIN Init */
 
  /* USER CODE END Init */
 
  /* Configure the system clock */
  SystemClock_Config();
 
  /* USER CODE BEGIN SysInit */
 
  /* USER CODE END SysInit */
 
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USORT2_UART_Init();
  MX_SPI1_Init();
  /* USER CODE BEGIN 2 */
 
  /* USER CODE END 2 */
 
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
 
  /* USER CODE END WHILE */
 
  /* USER CODE BEGIN 3 */
      HAL_UART_Transmit( &huart2, "12", 3, 100);
  }
  /* USER CODE END 3 */
 
}
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* USORT2 init function */
static void MX_USORT2_UART_Init(void)
{
 
  huart2.Instance = USORT2;
  huart2.Init.BaudRate = 9600;
  huart2.Init.WordLength = UART_WORDLENGTH_8B;
  huart2.Init.StopBits = UART_STOPBITS_1;
  huart2.Init.Parity = UART_PARITY_NONE;
  huart2.Init.Mode = UART_MODE_TX_RX;
  huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  huart2.Init.OverSampling = UART_OVERSAMPLING_16;
  if (HAL_UART_Init(&huart2) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }
 
}
Добавлено через 7 минут
Евгений В, секунда задержки ? Многовато по моему. У меня на другом таком же борде работает исправно и со 100 мсек. Насчет количества символов... В конце каждой строки есть символ конца строки, '\0', не ?

Добавлено через 41 минуту
Сейчас перепроверил. Да, на второй плате работает. Значит причина не в коде. И не кабеле. Либо что то с бордом, либо настройками COM6. PuTTY тоже работает.
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
24.07.2018, 20:27
Цитата Сообщение от max_sk Посмотреть сообщение
static void MX_USORT2_UART_Init(void)
где настройки выводов для UART?

Добавлено через 42 секунды
Цитата Сообщение от max_sk Посмотреть сообщение
В конце каждой строки есть символ конца строки, '\0', не ?
есть
но передавать то её зачем?
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
24.07.2018, 21:01  [ТС]
Переустановил ST-LINK драйвер - не помогло...

Добавлено через 2 минуты
Евгений В, в том же посте, но ниже main()'a...

Добавлено через 12 минут
ValeryS, не совсем понял. Отдельных настроек для пинов PA2 и PA3, через которые передает USORT2 нет вроде. Например, в GPIO их нет :

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
static void MX_GPIO_Init(void)
{
 
  GPIO_InitTypeDef GPIO_InitStruct;
 
  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOC_CLK_ENABLE();
  __HAL_RCC_GPIOH_CLK_ENABLE();
  __HAL_RCC_GPIOA_CLK_ENABLE();
  __HAL_RCC_GPIOB_CLK_ENABLE();
 
  /*Configure GPIO pin : B1_Pin */
  GPIO_InitStruct.Pin = B1_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct);
 
}
Добавлено через 1 минуту
Может антивирь шалит ? Сейчас гляну...

Добавлено через 9 минут
Сбросил настройки антивиря. Не помогло...
0
 Аватар для Евгений В
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,279
24.07.2018, 21:35
Попробуйте другой USORT на этой плате запустить. Что получится?

Добавлено через 4 минуты
Настройку пинов в stm32f4 можно найти в файле stm32f4xx_half_msp.c в функции HAL_UART_MspInit. Думаю, у вас аналогично.
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
24.07.2018, 23:39
Цитата Сообщение от max_sk Посмотреть сообщение
Например, в GPIO их нет :
в GPIO их и не будет, смотри в файле где инициализируется UART
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
28.07.2018, 11:52  [ТС]
Да, нашел. Но там вроде все в порядке. Вот код :

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
{
 
  GPIO_InitTypeDef GPIO_InitStruct;
  if(huart->Instance==USORT2)
  {
  /* USER CODE BEGIN USORT2_MspInit 0 */
 
  /* USER CODE END USORT2_MspInit 0 */
    /* Peripheral clock enable */
    __HAL_RCC_USORT2_CLK_ENABLE();
  
    /**USORT2 GPIO Configuration    
    PA2     ------> USORT2_TX
    PA3     ------> USORT2_RX 
    */
    GPIO_InitStruct.Pin = USORT_TX_Pin|USORT_RX_Pin;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
    GPIO_InitStruct.Alternate = GPIO_AF7_USORT2;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
 
    /* USORT2 interrupt Init */
    HAL_NVIC_SetPriority(USORT2_IRQn, 0, 0);
    HAL_NVIC_EnableIRQ(USORT2_IRQn);
  /* USER CODE BEGIN USORT2_MspInit 1 */
 
  /* USER CODE END USORT2_MspInit 1 */
  }
Добавлено через 5 минут
Дело в том, что этот код вполне себе работает на первой Nucleo-L152RE плате. Может что то в плате полетело ? Но с другой стороны, почему тогда код свободно прожигается через Virtual COM ?
0
 Аватар для Евгений В
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,279
28.07.2018, 21:29
Может у вас USORT не толерантен к 5 в, а вы их и подали. Поэтому я предложил вам проверить другой usart Может эти пины неисправны.
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
28.07.2018, 21:42  [ТС]
Лучший ответ Сообщение было отмечено _SayHello как решение

Решение

Наконец то я догадался взглянуть на обратную сторону платы. Оказывается, джамперы SB13 и SB14, отвечающие за связь с ST-LINK выпаяны, и припаяны на SB62 и SB63. Завтра на работе перепаяю и проверю, решило ли это проблему.
0
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
29.07.2018, 17:23  [ТС]
Да, решило !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.07.2018, 17:23
Помогаю со студенческими работами здесь

STM32CubeProgrammer перестал коннектится к NUCLEO-G474RE
после того как в программе добавил __WFI(), программатор перестал коннектиться к плате. плата и программа в stm'е работают нормально...

Nucleo перестал выводить инфу через UART2 в PuTTY
Я правильно понимаю, что UART2 встроен в Virtual COM ? У меня Nucleo-L152RE board. Я задал для UART2 baudrate 9600 в Кубе. И больше ничего...

USART2 перестает корректно работать если есть SystemInit();
Уже года полтора не юзал STM32, но теперь опять пришлось. Итак, у меня есть STM32F4DISCOVERY, нужно запустить USORT. Так как к ножкам...

Тактирование L152RE
Приветствую, есть платка Nucleo mb1136 на камне L152RET6, разбираюсь с тактированием хочу поставить внешний карц, но перед этим решил...

Перестал работать wi fi!
В общем, проблема такова:вчера благополучно до 10ти часов я сидела в интернете с помощью вай фай (dir620). Сегодня утром обнаружила,что к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru