http://www.tag-connect.com/
Я предпочитаю около края платы отверствия под контакты, так чтобы туда взодил и держался на пластиковой пружине разъем как от флопа питание.
Тема известная.optima писал(а):Для программирования себе соорудил такой щуп,


Это, по видимому, действительно так. Проверил ту же самую штуку с MISO на F030. Все замечательно работает. SPI и таймер бесконфликтно делят ноги, кому какие нужны, хотя в даташите почти в тех же самых формулировках указывают, что незадействованные ноги SPI можно использовать, как GPIO. Выходит, что формулировки одинаковые, но понимать их следует по разному. Не в первый раз натыкаюсь, что некоторые вещи в стм-овских даташитах описаны поверхностно, а более вообще нигде не разъясняются.Neekeetos писал(а):В более свежих сериях чипов (наверно во всех кроме 32f1xx) ремап уже по другому сделан - можно на каждый пин выбирать какой именно цифровой блок к нему подключен, конфликты исключены.
Круто, но дороговато. Похоже 1.25 мм 4-Pin разъемы, которыми пользуюсь сейчас для SWD всетаки практичнее и меньше места занимают.alexf58 писал(а):http://www.tag-connect.com/
Ога. Они разные, на разное число пинов и с разным шагом. Я специально написал и показал вертикальные, т.е. они меньше места занимают на плате. Кому-то может быть важноa5021 писал(а):Мне больше глянулись с шагом 0.5мм
Посмотрел, классные разъемы. На aliexpress легко купить. Правда похоже 4 пина - это не конек этих разъемов. А вот по 10-20 пинов 0.5мм для межплатного соединения - очень круто смотрится.hybroid писал(а):FFC/FPC. Есть вертикальные. Есть и DIP, SMD.
Код: Выделить всё
__INLINE void CalibrateADC(void)
{
/* (1) Ensure that ADEN = 0 */
/* (2) Clear ADEN */
/* (3) Launch the calibration by setting ADCAL */
/* (4) Wait until ADCAL=0 */
if ((ADC1->CR & ADC_CR_ADEN) != 0) /* (1) */
{
ADC1->CR &= (uint32_t)(~ADC_CR_ADEN); /* (2) */
}
ADC1->CR |= ADC_CR_ADCAL; /* (3) */
while ((ADC1->CR & ADC_CR_ADCAL) != 0) /* (4) */
{
/* For robust implementation, add here time-out management */
}
}
Ну и нафига ж эти ученые обезьяны из СТМ пытаются грубой силой повалить бит ADC_CR_ADEN, если в их же мануале написано (п.12.4.4), что ADEN можно только устанавливать и только в случае, если он в этот момент сброшен. А я тут прыгай в недоумении, отчего же это у меня АЦП раком встает.Follow this procedure to disable the ADC:
1. Check that ADSTART=0 in the ADC_CR register to ensure that no conversion is
ongoing. If required, stop any ongoing conversion by writing 1 to the ADSTP bit in the
ADC_CR register and waiting until this bit is read at 0.
2. Set ADDIS=1 in the ADC_CR register.
3. If required by the application, wait until ADEN=0 in the ADC_CR register, indicating that
the ADC is fully disabled (ADDIS is automatically reset once ADEN=0).
Код: Выделить всё
HAL_StatusTypeDef status;
static FLASH_EraseInitTypeDef erase;
uint32_t sector;
status=HAL_FLASH_Unlock();
erase.TypeErase=FLASH_TYPEERASE_SECTORS;
erase.VoltageRange=FLASH_VOLTAGE_RANGE_3;
erase.Sector=(uint32_t)12;
erase.NbSectors=(uint32_t)1;
HAL_FLASHEx_Erase(&erase,§or);
if(HAL_FLASH_Program(TYPEPROGRAM_WORD,(uint32_t)0x08100000,0x12345678)!=HAL_OK)HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_14);
else HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_13);
status=HAL_FLASH_Lock();В их манюалах много хорошего написано, а в их же кубе (сыром) ошибки в каждом проекте!a5021 писал(а):в их же мануале написано