Ср июн 21, 2017 10:39:53
Ср июн 21, 2017 11:01:09
Ср июн 21, 2017 11:18:57
Нет. ST-Link и J-Link производят разные компании, STMicroelectronics и SEGGER соответственно.atmicandr писал(а):А у J-Link утилита таже?
Ср июн 21, 2017 11:30:14
Ср июн 21, 2017 13:17:45
Например если собираетесь использовать IDE Segger Embedded Studio или отладчик Ozone, кторые кроме как с J-Link ни с чем другим работать не могут. Оно и понятно - Segger продвигает свою разработку - J-Link.atmicandr писал(а):а для чего вообще делают перепрошивку в J-Link?
Ср июн 21, 2017 14:01:32
Ср июн 21, 2017 14:56:51
Ср июн 21, 2017 15:43:02
Пт июн 23, 2017 18:09:36
/* Функция инициализации SPI1 */
void MX_SPI1_Init(void)
{
//SPI1->CR2 = 0x0000; // Очистить второй управляющий регистр
//SPI1->CR1 = 0x0000; // Очистить первый управляющий регистр
hspi1.Instance = SPI1; //выбор модуля SPI (SPI1, SPI2)
hspi1.Init.NSS = SPI_NSS_SOFT; //SPI1->CR1 |= SPI_CR1_SSM; //Программный режим NSS
hspi1.Init.Mode = SPI_MODE_MASTER; //SPI1->CR1 |= (SPI_CR1_MSTR | SPI_CR1_SSI); //Режим Master
hspi1.Init.Direction = SPI_DIRECTION_2LINES; //SPI1->CR1 &= ~SPI_CR1_BIDIMODE; //2-х проводной режим
hspi1.Init.DataSize = SPI_DATASIZE_8BIT; //SPI1->CR1 &= ~SPI_CR1_DFF; //8 бит данных
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; //SPI1->CR1 &= ~SPI_CR1_CPOL; //Полярность тактового сигнала CPOL = 0;
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; //SPI1->CR1 &= ~SPI_CR1_CPHA; //Фаза тактового сигнала CPHA = 0;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; //SPI1->CR1 &= ~SPI_CR1_BR; //Baud rate = Fpclk/2
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; //SPI1->CR1 &= ~SPI_CR1_LSBFIRST; //MSB передается первым
hspi1.Init.TIMode = SPI_TIMODE_DISABLED;
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLED; //SPI1->CR1 &= ~SPI_CR1_CRCEN; //расчёт контрольной суммы выключен
hspi1.Init.CRCPolynomial = 10; //SPI1->CRCPR = 10; // Полином для вычисления CRC
HAL_SPI_Init(&hspi1);
}
void MX_SPI1_Init(void)
{
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; //включить тактирование альтернативных функций
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; //включить тактирование порта А
RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; //подать тактирование
// PA5 ------> SPI1_SCK
// PA7 ------> SPI1_MOSI
GPIOA->CRL |= GPIO_CRL_MODE5 | GPIO_CRL_MODE7; //Выход 50МГц
GPIOA->CRL &= ~(GPIO_CRL_CNF5 | GPIO_CRL_CNF7); //Очищаем разряды CNF
GPIOA->CRL |= GPIO_CRL_CNF5_1 | GPIO_CRL_CNF7_1; //Двухтактный выход с альтернативной функцией
SPI1->CR1 &= ~SPI_CR1_SPE;
SPI1->CR1 = 0x0000; // Очистить первый управляющий регистр
SPI1->CR2 = 0x0000; // Очистить второй управляющий регистр
SPI1->CR1 |= SPI_CR1_MSTR; //Режим Master
SPI1->CR1 &= ~SPI_CR1_BIDIMODE; //2-х проводной режим
SPI1->CR1 &= ~SPI_CR1_DFF; //8 бит данных
SPI1->CR1 &= ~SPI_CR1_CPOL; //Полярность тактового сигнала CPOL = 0;
SPI1->CR1 &= ~SPI_CR1_CPHA; //Фаза тактового сигнала CPHA = 0;
SPI1->CR1 |= SPI_CR1_SSI;
SPI1->CR1 |= SPI_CR1_SSM; //Программный режим NSS
SPI2->CR1 &= ~(SPI_CR1_BR_1 | SPI_CR1_BR_0 | SPI_CR1_BR_2); //настройка делителя
//SPI1->CR1 &= ~SPI_CR1_BR; //Baud rate = Fpclk/2
SPI1->CR1 &= ~SPI_CR1_LSBFIRST; //MSB передается первым
SPI1->CR1 &= ~SPI_CR1_CRCEN; //расчёт контрольной суммы выключен
SPI1->CRCPR = 10; // Полином для вычисления CRC
//SPI1->CR2 |= SPI_CR2_SSOE; //Вывод NSS - выход управления slave select
SPI1->I2SCFGR &= ~SPI_I2SCFGR_I2SMOD; // Clear I2SMOD bit - SPI mode
SPI1->CR1 |= SPI_CR1_SPE; //разрешить работу модуля SPI
}
Пн июн 26, 2017 16:44:59
Пн июн 26, 2017 17:59:33
Это и есть ODR.Zhuk72 писал(а):некий регистр PxODR
Сб июл 01, 2017 20:57:52
Сб июл 01, 2017 21:54:17
After reset, these pins are configured as SWDIO and SWCLK alternate functions, and the internal pull-up on SWDIO pin
and internal pull-down on SWCLK pin are activated.
Вс июл 02, 2017 14:48:21
Вс июл 02, 2017 15:11:52
У него нет выхода Reset.aam писал(а):ST-Link такой
Пн июл 03, 2017 09:49:20
Пн июл 03, 2017 11:38:08
Попробуйте его использовать для сброса STM32. Расскажите что получится.aam писал(а):На корпусе написано - 1-я нога - RST.
Пн июл 03, 2017 13:17:47
Пн июл 03, 2017 18:09:47