16.10.2018, 12:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,629
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
j-Roger, USB in a nutshell читаю. У меня проблема с отправкой данных + непонятно, как отвечать на Vendor-запросы (почему-то не вижу ни в одной конечной точке срабатывания прерываний на них).
Вот
UPD: на изиэлектрониксе подмогли, разобрался. Фурычит.
__________________
Союз Советских Социалистических Округов Северной Америки
Последний раз редактировалось eddy; 23.10.2018 в 13:55.
|
|
|
|
16.10.2018, 21:52
|
|
Прописка
Регистрация: 08.04.2017
Сообщений: 100
Сказал спасибо: 40
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Может глупый вопрос, но спрошу
необходимо делать замеры АЦП в двух положениях ключей (коммутаторов)
включили 1е положение
небольшая задержка несколько милисек (чтоб устаканилось)
100 замеров АЦП в цикле с задержкой
вычисление
далее 2-е положение
небольшая задержка несколько милисек (чтоб устаканилось)
100 замеров АЦП в цикле с задержкой
вычисление
формирование пакета и отправка в УАРТ
переход на 1е положение
стоит ли заморачиваться с таймерами если по сути устройство больше ничем не занимается?
|
|
|
|
17.10.2018, 01:12
|
|
Частый гость
Регистрация: 08.05.2011
Сообщений: 25
Сказал спасибо: 12
Сказали Спасибо 7 раз(а) в 4 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
На первый взгляд не надо.
Но если куча всяких прерываний, то программная задержка может слегка растянутся. И значение этой задержки будет "дребезжать".
|
|
|
|
17.10.2018, 02:24
|
|
Прописка
Регистрация: 08.04.2017
Сообщений: 100
Сказал спасибо: 40
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Да кучи то и нету. Прерывание только Usart. Приёма-передачи байтов. АЦП настроено автономно 4ре инжектированных каналов. Задал делитель, время измерения, буфер.
п.с. еще заметил странную зависимость
частоты тактирования порта (2, 10, 50МГц)
и плавание результатов АЦП, пока не точно
понизил на всякий случай до 2МГц
Последний раз редактировалось olegprom19; 17.10.2018 в 05:56.
|
|
|
|
22.10.2018, 14:06
|
|
Прописка
Регистрация: 08.04.2017
Сообщений: 100
Сказал спасибо: 40
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Доброго дня
вопросик
нужно ли приводить данные к нужному типу
к примеру так?
BUF4[7]=(unsigned char)(CrcResult & 0xFF);
BUF4[8]=(unsigned char)(CrcResult ›› ![Горд собой](images/smilies/icon_dovl.gif) ;
CrcResult uint16_t , буфер uint8_t
или старший байт и так отвалится при копировании
BUF4[7]=CrcResult;
BUF4[8]=CrcResult ›› 8; так работает
|
|
|
|
23.10.2018, 10:12
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Отвалится, конечно. Но вам совет - не использовать платформозависимые типы. Включайте ‹stdint.h› и используйте uint8_t. Головной боли потом поубавится.
В вашем случае лучше использовать структуры, а не массивы.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
23.10.2018, 11:17
|
|
Прописка
Регистрация: 08.04.2017
Сообщений: 100
Сказал спасибо: 40
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Спасибо. Нужно программу добавить тестовый режим. То есть сейчас программа ждёт запрос и отвечает. А нужно что просто данные кидала в порт. Не кнопок не перемычек никаких нет.
Вот думаю может сделать какую-нибудь команду Test который переводит его в этот режим.
А после сброса reset опять в обычном режиме
|
|
|
|
24.10.2018, 09:11
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.02.2013
Сообщений: 1,038
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от olegprom19
|
Вот думаю может сделать какую-нибудь команду Test который переводит его в этот режим.
|
Почитайте про условную компиляцию.
#define Test
#if defined Test
// код для теста здесь
#else
// рабочий код здесь
|
|
|
|
24.10.2018, 09:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.02.2013
Сообщений: 1,038
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от olegprom19
|
BUF4[7]=(unsigned char)(CrcResult & 0xFF);
BUF4[8]=(unsigned char)(CrcResult ›› ;
|
Я бы сделал так (если с union можно включать массивы)
typedef union {uint16_t CrcResult;
uint8_t буфер[2];
}CRC
CRC.CrcResult = var16;
BUF4[7] = CRC.буфер[0];
BUF4[8] = CRC.буфер[1];
|
|
|
Сказали "Спасибо" dgrishin
|
|
|
24.10.2018, 09:35
|
|
Прописка
Регистрация: 08.04.2017
Сообщений: 100
Сказал спасибо: 40
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от dgrishin
|
Почитайте про условную компиляцию.
|
Мне нужно не чтоб при прошивке менять.
а в работающей версии перевод в тестовый режим,
думаю просто послать символ "Т" в сериал порт - который будет его включать
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:12.
|
|