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

Проект DAC на плате Nucleo-L152RE

29.12.2018, 21:44. Показов 2730. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу попробовать сделать проект с DAC, но пока нет идей. От производителя пример слишком простой - на осциллоскоп выводится значение 0xFF. Может кто предложит идею поинтересней ? Но не слишком сложную для новичка...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.12.2018, 21:44
Ответы с готовыми решениями:

Nucleo-L152RE board : перестал работать USART2
Я в Кубе создал новый проект для платы Nucleo-L152RE и указал в нем USORT2 для вывода текста на экран компьютера, через PuTTY. Если я...

Реализовать DAC таймерами в Nucleo-F411RE
Добрый день всем ! Подскажите пожалуйста, как с помощью таймеров в Нуклео-F411RE реализовать вывод волны синуса на экран осциллоскопа...

SPI на одной плате Nucleo
Здравствуйте все ! Одним словом, мне не удалось связать две платы Нуклео с помощью SPI. Пробую теперь сделать это на одной плате, где...

25
 Аватар для _SayHello
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
14.02.2019, 21:19
Студворк — интернет-сервис помощи студентам
max_sk,
Цитата Сообщение от max_sk Посмотреть сообщение
Получилось. Но, блин, с подсказками. А решить без подсказок мозгов не хватает... Эхххх, не быть мне разработчиком Real Time & Embedded
Ну прежде чем научиться создавать что-то, надо научиться копировать уже существующее )

Добавлено через 1 минуту
Цитата Сообщение от max_sk Посмотреть сообщение
Осталось только кнопку присобачить и частоту менять...
У вас еще есть инициализация UART в коде, можно частоту с ПК задавать)
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
19.02.2019, 21:13  [ТС]
Доброго времени суток всем! После нажатия на кнопку, вместо смены частоты синус сбрасывается на ноль. Вроде все просто - задай новый прескалер для TIM6, переинициализируй систему и выведи новый синус на скоп. Однако нет - идет сброс. В чем может быть причина ?
0
 Аватар для _SayHello
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
20.02.2019, 10:42
max_sk, Тут в соседней теме выяснили, что функция Init в HAL работает не совсем так как кажется. Попробуйте задавать частоту на прямую в регистр преддделителя частоты таким образом
C
1
TM6->PSC = 1000;
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
21.02.2019, 21:59  [ТС]
Почти закончил.

Но есть два нюанса - во-первых, мой китайский дигитальный осциллоскоп недостаточно качественный, он выводит синус не в реальном времени, а раз за тот период времени, которых я ему задаю на оси Х. И поэтому при большом периоде синуса кажется, что он сбросился на ноль. Это я решил путем задачи counter'a равным 100, вместо 65535. И теперь видно, как частота меняется.

Во-вторых, у кнопки есть вибрация. И поэтому, когда я нажимаю один раз, может пройти на плате случайное количество нажатий. И соответственно, выдает случайную частоту.

Над этим и буду работать.
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
21.02.2019, 22:32
Цитата Сообщение от max_sk Посмотреть сообщение
Во-вторых, у кнопки есть вибрация.
это называется "дребезг контактов" устраняется аппаратно или(и) программно
ищи на форуме много раз обсуждалось
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
22.02.2019, 17:56  [ТС]
Задал User Button как EXTI13. Только вот я нигде не нахожу обработчиков прерываний. Где их искать ? Помнится из предыдущих проектов, где то там callback'и должны быть...

Добавлено через 1 час 2 минуты
Все, сделал.

Выкладываю код :

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
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "stm32l1xx_hal.h"
 
/* USER CODE BEGIN Includes */
/* ----------------- Comments ------------------------------- */
/* W dannom projecte my wywodim volnu sinusa na skop cheres   */
/* DAC na lapku PA4. Odnowremenno s etim my umenshaem period  */
/* sinusa wdwoe s pomoshyu User Button, kotoryi nachoditsya   */
/* na lapke PC13.                                             */
/*    Kod, obrabatywayushiy nagatie na User Button nachoditsya*/
/* w faile stm32l1xx_it.c w funkcii EXTI15_10_IRQHandler()    */
/* ---------------------------------------------------------- */
#include <math.h>
//#include "MyReg.h"
 
#define PI 3.14159265
/* USER CODE END Includes */
 
/* Private variables ---------------------------------------------------------*/
DAC_HandleTypeDef hdac;
DMA_HandleTypeDef hdma_dac_ch1;
 
TIM_HandleTypeDef htim6;
 
UART_HandleTypeDef huart2;
 
/* USER CODE BEGIN PV */
/* Private variables ---------------------------------------------------------*/
uint16_t Buffer[360];
uint16_t TIM6Prescaler=100;
/* USER CODE END PV */
 
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DMA_Init(void);
static void MX_USART2_UART_Init(void);
static void MX_DAC_Init(void);
static void MX_TIM6_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 */
  int x;
  /* 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_DMA_Init();
  MX_USART2_UART_Init();
  MX_DAC_Init();
  MX_TIM6_Init();
  /* USER CODE BEGIN 2 */
  for(x=0; x<360; x++){
      Buffer[x]=(uint16_t)(sin(PI/180*x)*1000+1000);
  }
  
  HAL_TIM_Base_Start(&htim6);  
  HAL_DAC_Start(&hdac,DAC_CHANNEL_1);  
  HAL_DAC_Start_DMA(&hdac, DAC_CHANNEL_1, (uint32_t*)Buffer, 360, DAC_ALIGN_12B_R);
 
  /* USER CODE END 2 */
 
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
         
  /* USER CODE END WHILE */
 
  /* USER CODE BEGIN 3 */
 
  }
  /* USER CODE END 3 */
 
}

А вот обработчик прерывания нажатия на User Button :

C
1
2
3
4
5
6
7
8
9
10
11
12
void EXTI15_10_IRQHandler(void)
{
  /* USER CODE BEGIN EXTI15_10_IRQn 0 */
  TIM6Prescaler /= 2;
  if( TIM6Prescaler < 1) TIM6Prescaler=100;
  TIM6->PSC = TIM6Prescaler;
  /* USER CODE END EXTI15_10_IRQn 0 */
  HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);
  /* USER CODE BEGIN EXTI15_10_IRQn 1 */
 
  /* USER CODE END EXTI15_10_IRQn 1 */
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.02.2019, 17:56

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

Включение ethetnet PHY LAN8742A на плате nucleo-f767zi
Пытаюсь поднять tcp эхо сервер на плате stm32 nucleo-f767zi используя стек LwIP + Netconn + FreeRTOS, но плата даже не пингуется. Проект...

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

Контакты на печатной плате Alcatel OT4032 POP C2 - Куда к плате цепляются какие антенны?
Залез в Alcatel OT4032 POP C2. Подскажите, куда к плате цепляются какие антенны (GSM, Wi-Fi, Bluetooth, GPS)? Контактные площадки обвел...

DMA DAC
Всем доброго времени суток! Написал пилообразный сигнал при помощь DMA. const uint16_t saw_wave_array = {0, 4, 8, 12, 16, 20, 24, ...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru