С чего бы ему виснуть?
Код: Выделить всё
/* Wait till HSE is ready and if Time out is reached exit */
do
{
HSEStatus = RCC->CR & RCC_CR_HSERDY;
StartUpCounter++;
} while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));Код: Выделить всё
/* Wait till HSE is ready and if Time out is reached exit */
do
{
HSEStatus = RCC->CR & RCC_CR_HSERDY;
StartUpCounter++;
} while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));Код: Выделить всё
else
{ /* If HSE fails to start-up, the application will have wrong clock
configuration. User can add here some code to deal with this error */
}Это само, собой, но в данном случае речь шла о сбое при запуске HSE.scorpi_0n писал(а):По хорошему там нужно обрабатывать не только как у вас, отказ кварца при запуске, но и отказ кварца при работе, и попадание в хардфаульт
Не у всех моделей МК RC генератор настолько стабильный. В F030 к примеру, при тактировании от HSI, USART начинал сыпать ошибками на ровном месте...dosikus писал(а):Кстати ,Мурик в 042 и 072 HSI стабильный и используется для тактирования USB
Что не описано? Есть же секвенции переключения. Везде писано, что сначала переводим тактирование на HSI без PLL ...Chettuser писал(а): А вот этого момента нигде не описано, по крайней мере я не нашёл.
Код: Выделить всё
ADC_ExternalTrigConvCmd(ADC2, ENABLE);Код: Выделить всё
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;Код: Выделить всё
#define WR=1 (GPIOA->BSRR=GPIO_BSRR_BS8)
#define WR=0 (GPIOA->BSRR=GPIO_BSRR_BR8)Код: Выделить всё
WR=1;
WR=0;Код: Выделить всё
#define WR_1 (GPIOA->BSRR=GPIO_BSRR_BS8)
#define WR_0 (GPIOA->BSRR=GPIO_BSRR_BR8)Код: Выделить всё
#define WR(x) (GPIOA->BSRR = (x) ? GPIO_BSRR_BS8 : GPIO_BSRR_BR8)
Код: Выделить всё
WR(0);
WR(1);
На сайте арм...Мурато Мяуконни писал(а):1. В Programming manual на серию микроконтроллеров на сайте стм. Документ PM0215 для серии F0 (cortex m0), PM0056 для F1 (cortex m3), PM0214 для F4 (cortex m4)