Перейти к содержимому

#5.1. Запускаем «blink» (CMSIS)

Настраиваем мигание светодиода напрямую через регистры.

Создаем проект в Keil, выбираем наш МК, подключаем библиотеку CMSIS Core и Device Startup, создаем в корне файл main.c и пишем следующий код:

В этом коде задержка (delay) реализована с помощью цикла for.

#include "stm32f10x.h"


int main(void)
{
	uint32_t i;//Создаем переменную i разрядностью 32 бита
	
	RCC->APB2ENR|=RCC_APB2ENR_IOPCEN;//ВКЛЮЧЕНИЕ ТАКТИРОВАНИЯ ПОРТА C
	
			//Конфигурирование GPIOC.13 - 1 вариант
	GPIOC->CRH = 0x200000;//НАСТРОЙКА РЕЖИМА РАБОТЫ ПОРТА 13 CNF и MODE
	
			//Конфигурирование GPIOC.13 - 2 вариант
	//GPIOC->CRH = 1 << 20;// операция сдвига
	
			//Конфигурирование GPIOC.13 - 3 вариант
	//GPIOC->CRH &= ~GPIO_CRH_MODE13;  //очистить разряды MODE
	//GPIOC->CRH &= ~GPIO_CRH_CNF13;   //очистить разряды CNF
	//GPIOC->CRH |=  GPIO_CRH_MODE13_1;//выход, 2MHz
	//GPIOC->CRH &= ~GPIO_CRH_CNF13;   //общего назначения, симетричный

	
	
	while(1)
	{
		GPIOC->ODR = 0x2000;//ВЫСТАВЛЯЕМ УРОВЕНЬ ПОРТА 13
		for (i=0;i<2000000;i++){}
		GPIOC->ODR = 0x0000;
		for (i=0;i<2000000;i++){}
	}

}

Настраиваем именно CRH, т.к. порт 13 находится именно в этом регистре.

Настройка портов GPIOx_CRH
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x