Home > Study > C Language > ARM System Programming > [ex02] CMSIS_LAB

[ex02] CMSIS_LAB
Study Language

문제 설명


// main.c
#include "device_driver.h"

void Main(void)
{
	volatile int i;

	Uart_Init(115200);
	Uart_Printf("CMSIS based Register Define\n");

	// 이 부분은 수정하지 말 것
	RCC->APB2ENR |= (1<<3);

	// LED Pin을 출력으로 설정


	for(;;)
	{
		// LED 모두 ON


		for(i=0; i<0x40000; i++);

		// LED 모두 OFF


		for(i=0; i<0x40000; i++);
	}
}

정답 코드


#include "device_driver.h"

void Main(void)
{
	volatile int i;

	Uart_Init(115200);
	Uart_Printf("CMSIS Based Register Define\n");

	RCC->APB2ENR |= (1<<3);

	GPIOB->CRH = 0x66 << 0;

	for(;;)
	{
		GPIOB->ODR = 0x0 << 8;
		for(i=0; i<0x40000; i++);
		GPIOB->ODR = 0x3 << 8;
		for(i=0; i<0x40000; i++);
	}
}

메모


printf 내부의 \n 습관화 필요