Перейти к содержанию

Отправить Данные На Stm32F4


Гость Дмитрий

Рекомендуемые сообщения

у stm32f407vgt6 флеш память 1 Мб мне сказали что скорость передачи поменьше ставь и контроллер сам запихает все в память и типа проблем не будет, главное чтобы переполнения буфера обмена не было...

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

  • Ответов 53
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Да это я про скорость (ваш пост 26): сначала вы пишите, то что я процитировал, потом какие-то разговоры про уменьшение скорости (я так понял, чтобы МК успевал отправлять данные на ЦАП). Если память 1Мб, то и загоняйте ВСЮ последовательность в МК на ЛЮБОЙ скорости, а уж потом пусть МК делает с полученными данными что вам надо.

Ссылка на комментарий
Поделиться на другие сайты

У Вас в распоряжение целый STM32F4 там даже изобретать ни чего не надо, есть встроеный DAC. Смотрите здесь http://easystm32.ru/for-beginners/37-dac-stm32 и подробнее здесь http://chipspace.ru/stm32-dac-1/ , только переферию надо переконфигурить в соответствии с ядром.

Ссылка на комментарий
Поделиться на другие сайты

Слишком много лишнего получается, AD9762 ни к чему ставить. В самом МК на шине APB1 висят 2 12 разрядных ЦАПа, которые необходимо просто включить. Исходя из вашего тех.задания вырисовывается следующая картинка: На МК включаем UART, формируем массив на МК, куда с компа с помощью интерфейсной программы помещаем вычисленные значения. Дальше включаем DAC и DMA и зацикливаем программу. Можно на выход DAC простой ФНЧ прикрутить. Читайте вторую ссылку поста 31 там эта задача уже решена.

Ссылка на комментарий
Поделиться на другие сайты

Помогите пожалуйста, между ногой PA13 и землей у меня напряжение питания, а между ногой PA14 и землей практически ноль, плата не прошивается, когда пытаюсь прошить то в какой то момент на плате stm32f4-discovery красный светодиод COM моргает один раз зеленым и все... CooCox показывает ошибку. всю ночб сидел звонил дорожки, все на месте,вообще такое было недавно в лаборатории универа с аспирантом четыре часа с этой проблемой парились, все прозвонили, сверили с рабочей платой каждую ногу на моей... заменили МК и уже не знали что делать и вдруг плата начала читаться, естественно и шлейф прозванивали и все что только можно, плата стала стабильно читаться а теперь вот снова не хочет, я всю ночь не спал.... что делать?

Ссылка на комментарий
Поделиться на другие сайты

не помогает ... что то с платой... потому что discovery работает как положено, а когда свою подсоединяю пишет ошибку соединения.... boot0 дожен на земле сидеть? ресет на питании или на земле? cap1 и cap2 через электролиты на землю?

Ссылка на комментарий
Поделиться на другие сайты

Подскажите пожалуйста, UART4 каким образом включить, ведь для мк usart и uart это разные вещи? во всяком случае usart и uart имеют разные ноги на компе, как быть с инициализацией?

Ссылка на комментарий
Поделиться на другие сайты

везде пишут про то что они отличаются режимами и при асихронном режиме т.е. например с FT232RL там совсем не важно, но как правильно описать в программе чтобы контроллер понял что я использую uart4. мне говорят что надо как в библиотеке писать только ноги описывать и указывать те (на моем примере А0 и А1), которые висят на FT232, хотя мне на самом деле достаточно принимающей ноги А1

Ссылка на комментарий
Поделиться на другие сайты

Как вариант:

//тут смотрите на какой шине сидит Ваш ЮАРТ и ее включаете
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);

// Настраиваем ножки контроллера, тут все понятно
// ножки перенастраиваете под используемый юарт
GPIO_StructInit(&gpio);

gpio.GPIO_Mode = GPIO_Mode_AF;
gpio.GPIO_Pin = GPIO_Pin_9;
gpio.GPIO_Speed = GPIO_Speed_50MHz;
gpio.GPIO_OType = GPIO_OType_PP;
gpio.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOA, & gpio);

gpio.GPIO_Mode = GPIO_Mode_AF;
gpio.GPIO_Pin = GPIO_Pin_10;
gpio.GPIO_Speed = GPIO_Speed_50MHz;
gpio.GPIO_OType = GPIO_OType_PP;
gpio.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOA, & gpio);

// Обязательно вызываем эту функцию
GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_USART1);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_USART1);

// Настраиваем модуль USART
// настройка модуля, скорости, четности и т.д.
USART_StructInit(&usart);
usart.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
usart.USART_BaudRate = 9600;
USART_Init(USART1, &usart);

// Включаем прерывания и запускаем USART
NVIC_EnableIRQ(USART1_IRQn);
USART_Cmd(USART1, ENABLE);

Ссылка на комментарий
Поделиться на другие сайты

GPIO_StructInit(&gpio); и USART_StructInit(&usart); по моему не нужны, сделал так

GPIO_InitTypeDef gpio;

USART_InitTypeDef usart;

а после GPIO_StructInit(&gpio); и USART_StructInit(&usart); стер из кода программы. ошибки пропали, буду прошивать, проверять.

Ссылка на комментарий
Поделиться на другие сайты

по uart не удалось принять данные, много перепробовал, перемучился, потом в один прекрасный момент померил напряжение питания на FT232RL а оно вместо 5 всего 3.5 вольт в общем сегодня купил детали, починю бп потом отпишусь.

Ссылка на комментарий
Поделиться на другие сайты

снова бьюсь с кодом, если я сигнал генерю программно то все хорошо, цап работает а если пытаюсь через uart4 передать то какая то борода выходит, не могу не передать ни принять, щас скину код как я пытался завести uart

#include "stm32f4xx_gpio.h"

#include "stm32f4xx.h"

#include "stm32f4xx_usart.h"

#include "stm32f4xx_rcc.h"

#include "stm32f4xx_dac.h"

//Функция предназначена для формирования небольшой задержки

void Delay(void) {

volatile uint32_t i;

for (i=0; i != 0x70000; i++);

}

//Функция отправляющая байт в UART

void send_to_uart(uint8_t data) {

while(!(UART4->SR & USART_SR_TC)); //Ждем пока бит TC в регистре SR станет 1

UART4->DR=data; //Отсылаем байт через UART

}

int main(void) {

GPIO_InitTypeDef PORTA_init_struct;

// Включаем тактирование порта А и USART1

RCC_APB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_APB1Periph_UART4, ENABLE);

// Настраиваем ногу TxD (PA9) как выход push-pull c альтернативной функцией

PORTA_init_struct.GPIO_Pin = GPIO_Pin_0;

PORTA_init_struct.GPIO_Speed = GPIO_Speed_25MHz;

PORTA_init_struct.GPIO_Mode = GPIO_Mode_AF;

GPIO_Init(GPIOA, &PORTA_init_struct);

//Настраиваем UART

UART4->BRR=0x9c4; //BaudRate 9600

UART4->CR1 |= USART_CR1_UE; //Разрешаем работу USART1

UART4->CR1 |= USART_CR1_TE; //Включаем передатчик

//Все остальные параметры (стоп биты, чётность,кол-во байт данных) уже настроены

//как надо, (во все эти биты по умолчанию записаны нули), таким образом мы имеем

// скорость 9600 1 стоп бит, 8 бит данных, без проверки чётности

while(1) {

//Выдаем в UART слово Hello

send_to_uart('H');

send_to_uart('e');

send_to_uart('l');

send_to_uart('l');

send_to_uart('o');

send_to_uart(' ');

send_to_uart(':');

send_to_uart(')');

send_to_uart('\n');

Delay(); //небольшая задержка

}

}

Ссылка на комментарий
Поделиться на другие сайты

Поздравляю! :drinks:

Один вопрос: чем формируешь данные, прогу написал уже? Все-таки 212 уровней и 30 килоотсчетов поместить на экран монитора-задачка - масштабировать надо и не потерять при этом...

Изменено пользователем КЭС
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...