1 / 1 / 0
Регистрация: 11.11.2020
Сообщений: 132
1

Передача данных в компьютер по UART с микроконтроллера STM32F407VET6

13.10.2023, 01:31. Показов 429. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, имеется вот такой код дня генерации белого шума и выдачи сигнала на экран осциллографа. Подскажите как переписать данный код, чтобы можно было сделать буффер на 30000 значений и передавать данный буфер со значениями по UART в компьютер например в терминал.
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include "main.h"
#include "stm32f4xx_hal.h"
DAC_HandleTypeDef hdac;
RNG_HandleTypeDef hrng;
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DAC_Init(void);
static void MX_RNG_Init(void);
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_DAC_Init();
MX_RNG_Init();
while (1)
{
uint32_t random32bit = HAL_RNG_GetRandomNumber(&hrng);
random32bit >>= 20;
HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, random32bit);
}
}
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
 
__HAL_RCC_PWR_CLK_ENABLE();
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
 
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 4;
RCC_OscInitStruct.PLL.PLLN = 168;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 7;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
Error_Handler();
}
 
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
 
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
{
Error_Handler();
}
}
 
static void MX_DAC_Init(void)
{
DAC_ChannelConfTypeDef sConfig = {0};
hdac.Instance = DAC;
if (HAL_DAC_Init(&hdac) != HAL_OK)
{
Error_Handler();
}
 
sConfig.DAC_Trigger = DAC_TRIGGER_NONE;
sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE;
if (HAL_DAC_ConfigChannel(&hdac, &sConfig, DAC_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
 HAL_DAC_Start(&hdac, DAC_CHANNEL_1);
}
 
static void MX_RNG_Init(void)
{
hrng.Instance = RNG;
if (HAL_RNG_Init(&hrng) != HAL_OK)
{
Error_Handler();
}
}
 
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
 
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOH_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
 
GPIO_InitStruct.Pin = GPIO_PIN_4;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
 
void Error_Handler(void)
{
  /* USER CODE BEGIN Error_Handler_Debug */
  /* User can add his own implementation to report the HAL error return state */
  __disable_irq();
  while (1)
  {
  }
  /* USER CODE END Error_Handler_Debug */
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.10.2023, 01:31
Ответы с готовыми решениями:

передача данных с arduino uno на компьютер по UART через с++
Приветствую всех. Стоит следующая задача. На с++ разработать программу которая принимает данные с...

Передача данных по UART
Здравствуйте, форумчане! Не могу понять, почему при передаче числа в hex по UART на контроллер...

Передача данных по UART из stm на ПК
Здравствуйте, имеется задача передачи данных от stm32 на ПК и от ПК в stm по UART. Имеется...

Передача данных в мобилку по UART
Всем доброго времени суток!Есть мк и подключенный к нему мобильный телефон,допускающий управление...

Stm32 передача данных по UART
Здравствуйте, начинаю разбираться с библиотекой HAL. МК Stm32f407ig, IDE SW4STM32 Создала в кубе...

2
315 / 184 / 44
Регистрация: 25.08.2011
Сообщений: 1,220
13.10.2023, 08:02 2
Цитата Сообщение от Fric Посмотреть сообщение
Подскажите как переписать данный код
Я так понимаю что вы не знаете что такое массивы и каким образом их выделить?


Цитата Сообщение от Fric Посмотреть сообщение
передавать данный буфер со значениями по UART
Можно открыть даташит и почитать какие регистры отвечают за UART. По коду видно что используется HAL, тогда в кубе сконфигурировать UART. Ну и найти пример в интернете как использовать UART.
Там вроде как примитив. Информации просто море.
0
1 / 1 / 0
Регистрация: 11.11.2020
Сообщений: 132
13.10.2023, 19:47  [ТС] 3
Цитата Сообщение от Worldmaster Посмотреть сообщение
Я так понимаю что вы не знаете что такое массивы и каким образом их выделить?
Я знаю, что такое массивы и как с ними работа, мне нужна помощь с передачей в терминал.
0
13.10.2023, 19:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2023, 19:47
Помогаю со студенческими работами здесь

Передача и сортировка разнотипных данных по UART
Всем привет. Возникла такая проблема за неопытностью, разрабатываю устройство на двух...

UART и три микроконтроллера
Всем привет! Возникла острая необходимость произвести небольшие дополнения существующего...

Передача данных через UART посредством Python
Программа должна передавать число от 00 до FF, но получается передавать только коды символов....

Передача данных c МК51 по UART и вывод в терминал
Нужно передать 2-х байтовое число через UART по каналу RS-485 на терминал.

AVR, mega32, cvavr, uart, передача данных
Добрый вечер, господа. Имею вопрос к вам. Накидал uart на меге, и все вроде бы работает, но мк...

Прошивка микроконтроллера через Uart
Добрый вечер, Имеется USB-to-Serial (UART) конвертер(cp210x) и atmega48PA-PU через какое ПО можно...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru