Вт окт 11, 2022 12:18:32
int main(void)
{
// Начальные инициализации оборудования STM32
clockInit();
// Включение тактирования портов GPIOA, GPIOB, GPIOC
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;
// Обязательный сброс конфигурации портов в 0
GPIOA->CRL &= ~(GPIO_CRL_MODE0 | GPIO_CRL_CNF0);
GPIOC->CRH &= ~(GPIO_CRH_MODE13 | GPIO_CRH_CNF13);
GPIOC->CRH &= ~(GPIO_CRH_MODE14 | GPIO_CRH_CNF14);
GPIOB->CRL &= ~(GPIO_CRL_MODE3 | GPIO_CRL_CNF3);
GPIOB->CRL &= ~(GPIO_CRL_MODE4 | GPIO_CRL_CNF4);
// Настройка режимов портов
uint32_t mode=0b11; // Режим выхода, с максимальной частотой 50 МГц
uint32_t cnf=0b00; // Режим push-pull
GPIOA->CRL |= (mode << GPIO_CRL_MODE0_Pos) | (cnf << GPIO_CRL_CNF0_Pos);
GPIOC->CRH |= (mode << GPIO_CRH_MODE13_Pos) | (cnf << GPIO_CRH_CNF13_Pos);
GPIOC->CRH |= (mode << GPIO_CRH_MODE14_Pos) | (cnf << GPIO_CRH_CNF14_Pos);
GPIOB->CRL |= (mode << GPIO_CRL_MODE3_Pos) | (cnf << GPIO_CRL_CNF3_Pos);
GPIOB->CRL |= (mode << GPIO_CRL_MODE4_Pos) | (cnf << GPIO_CRL_CNF4_Pos);
while (true)
{
delayMs(500);
GPIOA->BSRR = (1<<GPIO_BSRR_BR0_Pos);
GPIOC->BSRR = (1<<GPIO_BSRR_BR13_Pos);
GPIOC->BSRR = (1<<GPIO_BSRR_BR14_Pos);
GPIOB->BSRR = (1<<GPIO_BSRR_BR3_Pos);
GPIOB->BSRR = (1<<GPIO_BSRR_BR4_Pos);
delayMs(500);
GPIOA->BSRR = (1<<GPIO_BSRR_BS0_Pos);
GPIOC->BSRR = (1<<GPIO_BSRR_BS13_Pos);
GPIOC->BSRR = (1<<GPIO_BSRR_BS14_Pos);
GPIOB->BSRR = (1<<GPIO_BSRR_BS3_Pos);
GPIOB->BSRR = (1<<GPIO_BSRR_BS4_Pos);
};
return 0;
}
Вт окт 11, 2022 12:25:59
Вт окт 11, 2022 14:32:05
Вт окт 11, 2022 16:08:41
$ grep -rnw ./CMSIS -e 'SystemInit'
./CMSIS/device/system_stm32f10x.h:79:extern void SystemInit(void);
Вт окт 11, 2022 16:34:10
Вт окт 11, 2022 17:34:57
$ grep -rnw ./CMSIS -e 'SystemInit'
./CMSIS/device/system_stm32f10x.h:79:extern void SystemInit(void);
$ grep -rnw ./CMSIS -e 'SystemInit'
./CMSIS/device/system_stm32f10x.h:79:extern void SystemInit(void);
Вт окт 11, 2022 18:11:07
Вт окт 11, 2022 19:39:54
// Включение тактирования портов GPIOA, GPIOB, GPIOC
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;
// Конфигурирование AFIO, чтобы работали ножки PB3, PB4, PA15
AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE; // Отключение JTAG
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; // Разрешение тактирования AFIO для PA15
Вт окт 11, 2022 19:40:31
Вт окт 11, 2022 19:44:21
// Включение тактирования портов GPIOA, GPIOB, GPIOC
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;
// Конфигурирование AFIO, чтобы работали ножки PB3, PB4, PA15
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; // Разрешение тактирования AFIO для PA15
AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE; // Отключение JTAG
Вт окт 11, 2022 19:56:39