Reystlin
-
Постов
128 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные Reystlin
-
-
компиляции я наконец-таки добился, так-же прошивка заработала. теперь воюю с отладкой
-
Доброго времени суток ув. форумчане
перелопатил кучу мануалов по настройке эклипса под линукс для полноценной работы с stm32 через st-link с отладкой, никак не могу настроить эту чудо-связку, посоветуйте пожалуйста проверенный рабочий мануал по настройке, или может кто поможет с настройкой?
у меня стоит Eclispe Luna 4.4.2
тулчейны установлены, из консоли видятся. ARM Eclipse Plugin тоже установлен. но при создании проекта нет вкладки ARM Crooss Target Application
Заранее благодарю
-
я ищу что-нибудь близкое к резисторам Alpha R16 с возможностью установить на корпус и не длинным валом с зубчиками для кнуба, все что мне попадалось либо без резьбы, либо резьба металлическая, либо с длинным валом или вал гладкий под отвертку.... да и то достать их толком негде
-
Доброго времени суток ув. форумчане
конструирую силовой преобразователь и у меня в нем имеется переменный резистор в первичной цепи, посему нужен изолированный резистор сопротивлением около 5 килоом
подскажите где такой можно достать? сколько не искал на сайтах магазинов и на алиэкспресе, несмог найти подходящие...
заранее благодарю
-
Опубликовано · Изменено пользователем Reystlin · Пожаловаться
Доброго времени суток ув. форумчане
перестал у меня IAR видеть мой ST-Link в составе Discovery
непойму куда копать
ошибку вот такую выдает при попытке прошить что-нибудь
Mon Aug 15, 2016 21:35:29: Fatal error: Failed to search for probes, ensure that the USB drivers are installled. Session aborted!
скачал ST_Link Utility, пишет : No ST-LINK detected
в списке устройств тоже не виден.... , питание на МК программатора приходит, на кварце генерация есть, светодиод COM моргает с периодичностью в 1 сек...
-
кто как организовывает управление выводом чипселекта при передаче по SPI в связке с DMA?
-
нашел, почему-то в файле stm32f4xx.h был HSE_Value дефайн на 25мгц
-
Опубликовано · Изменено пользователем Reystlin · Пожаловаться
чудеса с PLL продолжаются
кварц 8мгц, выбираю в Экселевском файле источник HSE, ставлю частоту 160мгц, он мне высчитывает PLL_M=8 PLL_N=320 PLL_P=2 PCLK1=40 PCLK2=80, генерирурю файл, в коде заполняю структуру
int main() { SystemCoreClockUpdate(); RCC_ClocksTypeDef Clocks; RCC_GetClocksFreq(&Clocks); .... }
и в дебаге вижу содержимое структуры
SYSCLK=500000000
HCLK=500000000
PCLK1=125000000
PCLK2=250000000
причем от HSI работает как задумано
осцил на ногах кварца показывает частоту 8мгц
to Genadi Zawidowsk... перед отправкой на производство плат все эти моменты были устранены
-
на данный момент к разъемам подключен только ST_LINK находящийся в плате Discovery, остальные разъемы пустые
нашел косяк, присмотрелся к резистору идущему на Vdda, а он там 10ком стоит, по ошибке не туда впаял%) теперь запустилось все, спасибо большое
-
состояние boot0 ситуации не меняет
попробовал сгенерить проект в кубе
так-же виснет, на ноги MCO ничего не выдает
-
https://www.dropbox.com/s/2dae76s0grdfdpm/D...d_MAG.lay6?dl=0 - вот файл разводки, кондеры по питанию и VCAPы стоят по 3х1мкф, схемы не имею, всегда сразу плату рисую. ещё навесом после стабилизатора 3.3 вольтового висит электролит 47мкф.
код выглядит так, при пошаговом выполнении прога падает именнно на той строке, которую я кинул, до цикла не доходит выполнение
Кубом сейчас попробую
-
Добрый день ув. форумчане
генерирурю файл syste_stm32f4xx.c с помощью утилиты Экселевской от разработчника
при запуске приложения виснет на строке
/* Enable the main PLL */
RCC->CR |= RCC_CR_PLLON;
пробовал от разных источников тактировать, когда тактирую напрямую от кварца или от внутреннего источника, то запускается без проблем, как только выбираю PLL с кварцем или внутренним источником, так отказывается работать...
причем на другой похожей плате запускается, разводка питания одинаковая у плат, правда вторая плата без внешнего кварца
частоту пытаюсь настроить 160мгц, но и другие частоты тоже не работают
не пойму в какую сторону копать
-
нашел ошибку, OE нога в воздухе висела
-
ну насколько я вижу данные правильные передаются
-
Опубликовано · Изменено пользователем Reystlin · Пожаловаться
https://www.dropbox.com/s/dyzexu47yzxlp2r/111.png?dl=0
отправка вот такого пакета
uint8_t DispBuff[]={0xFF,0xFF,0xFF,0x00,0xFF};
защелка защелкивается далеко справа за пределами экрана, я там задержку большую воткнул
-
Опубликовано · Изменено пользователем Reystlin · Пожаловаться
Добрый день ув. форумчане
столкнулся с такой проблемкой, есть STm32F405 у которой аппаратный SPI подключен к пяти 74hc595 включенным последовательно
передаю 0xFF во все микрухи и во всех, кроме первой(той, к которой сам мк подключен) на выходе получаю 1, а на ней 0, не пойму почему...
куда копать? микруха запаяна хорошо, соплей нет
uint8_t DispBuff[]={0xFF,0xFF,0xFF,0xFF,0xFF}; void Init_SPI2() { GPIO_InitTypeDef GPIO_InitStructure; GPIO_StructInit(&GPIO_InitStructure); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_SPI2); GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_SPI2); GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_SetBits(GPIOB,GPIO_Pin_12); RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE); SPI_InitTypeDef SPI_InitTypeDefStruct; SPI_InitTypeDefStruct.SPI_Direction = SPI_Direction_1Line_Tx; SPI_InitTypeDefStruct.SPI_Mode = SPI_Mode_Master; SPI_InitTypeDefStruct.SPI_DataSize = SPI_DataSize_8b; SPI_InitTypeDefStruct.SPI_CPOL = SPI_CPOL_High; SPI_InitTypeDefStruct.SPI_CPHA = SPI_CPHA_1Edge; SPI_InitTypeDefStruct.SPI_NSS = SPI_NSS_Soft; SPI_InitTypeDefStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256; SPI_InitTypeDefStruct.SPI_FirstBit = SPI_FirstBit_MSB; SPI_InitTypeDefStruct.SPI_CRCPolynomial = 0; SPI_Init(SPI2, &SPI_InitTypeDefStruct); SPI_Cmd(SPI2, ENABLE); SPI_NSSInternalSoftwareConfig(SPI1, SPI_NSSInternalSoft_Set); DMA_InitTypeDef DMA_ini; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1, ENABLE); DMA_ini.DMA_Channel = DMA_Channel_0; DMA_ini.DMA_PeripheralBaseAddr = (uint32_t)&(SPI2->DR); DMA_ini.DMA_Memory0BaseAddr = (uint32_t)DispBuff; DMA_ini.DMA_DIR = DMA_DIR_MemoryToPeripheral; DMA_ini.DMA_BufferSize = sizeof(DispBuff); DMA_ini.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_ini.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_ini.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; DMA_ini.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; DMA_ini.DMA_Mode = DMA_Mode_Normal; DMA_ini.DMA_Priority = DMA_Priority_Medium; DMA_ini.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_ini.DMA_FIFOThreshold = DMA_FIFOThreshold_1QuarterFull; DMA_ini.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_ini.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_Init(DMA1_Stream4, &DMA_ini); SPI_I2S_DMACmd(SPI2,SPI_I2S_DMAReq_Tx, ENABLE); } int main() { Init_SPI2(); while(1) { GPIO_ResetBits(GPIOB, GPIO_Pin_12); DMA_Cmd(DMA1_Stream4, ENABLE); GPIO_SetBits(GPIOB, GPIO_Pin_12); int i=0; while(i<100) i++; } }
-
Помогло, благодарю:)
-
изначально там было 0
ARR =0x00000100
-
to Сергей Борщ
сделал вот так:
int16_t leftEnc = (int16_t)TIM3->CNT/2;
при кручении в обратную сторону в переменную leftEnc записывается значение 126 вместо -1
-
Опубликовано · Изменено пользователем Reystlin · Пожаловаться
Доброго времени суток ув. форумчане
кто как обрабатывает данные снятые с таймера, который включен в режиме обработки энкодера?
у меня затык с тем, как определить направление вращения, что-бы прибавлять/вычитать значение к переменной
таймер инициализирую вот так:
//Encoder TIM3 Init RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); TIM_Time_user.TIM_Prescaler = 0; TIM_Time_user.TIM_CounterMode = TIM_CounterMode_Up; TIM_Time_user.TIM_Period = 256; TIM_Time_user.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseInit(TIM3, &TIM_Time_user); TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI1, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising); TIM_Cmd(TIM3, ENABLE); TIM3->CNT=0; //Encoder TIM2 Init RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_Time_user.TIM_Prescaler = 0; TIM_Time_user.TIM_CounterMode = TIM_CounterMode_Up; TIM_Time_user.TIM_Period = 256; TIM_Time_user.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseInit(TIM2, &TIM_Time_user); TIM_EncoderInterfaceConfig(TIM2, TIM_EncoderMode_TI2, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising); TIM_Cmd(TIM2, ENABLE); //TIM2->CCMR1 = TIM_CCMR1_CC2S_0 | TIM_CCMR1_CC1S_0; TIM2->CCER |= TIM_CCER_CC1P; TIM3->CCER |= TIM_CCER_CC1P; TIM2->CNT=0;
-
подтяжка внешним резистором спасла ситуацию
спасибо товарищу ViKo
-
to Огурцов, схема проста, нога PH0 от неё дорожка идет к кнопке, другим концом кнопка сидит на земле
to ViKo, нога настроена на подтягивающий резистор к плюсу, попробую ещё внешний повесить
to hd44780 внешнего кварца нет, этим битом я как-раз таки выключил внешний кварц. Удобно было развести кнопку на эту ногу, поэтому туда и повесил.
-
слышал, но это не он.
проблема пр контроллер считает кнопку нажатой даже когда она не является нажатой ни кратковременно ни как-либо по другому
просто запускаю код на исполнение, кнопку не трогаю а условие срабатывает
-
Доброго времени суток, ув. форумчане
Повесил я кнопку на PH0
настроил вот таким образом:
GPIO_InitTypeDef dwnBtn; RCC->CR &= ~(1<<16);//HSEON GPIO_StructInit(&dwnBtn); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOH, ENABLE); dwnBtn.GPIO_Pin = GPIO_Pin_0; dwnBtn.GPIO_Mode = GPIO_Mode_IN; dwnBtn.GPIO_Speed = GPIO_Speed_50MHz; dwnBtn.GPIO_OType = GPIO_OType_PP; dwnBtn.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOH, &dwnBtn);
проверяю вот так:
if(GPIO_ReadInputDataBit(GPIOH, GPIO_Pin_0) == 0)
иногда контроллер начинает считать, что кнопка нажата, хотя она таковой не является, а бывает что работает как задумано, кнопка подключена к земле одним концом
в какую сторону копать?
передняя панель для устройства
в Компоненты
Опубликовано · Пожаловаться
Добрый день ув. форумчане
возник вопрос, где можно заказывать вот такие вот панели
https://pp.vk.me/c636330/v636330914/39f92/5m4dqeOPEOM.jpg
https://pp.vk.me/c636330/v636330914/39f9a/Q_JeY1HkhII.jpg
http://ros-ctm.ru/imgs/50605-svarochnyy-in...ubag-in-200.jpg
как называется такая технология?
как я понял, там гибкая плата, на которую припаяны светодиоды и кнопки и потом сверху чем-то типа пленки закрыто