==================================Outline====================================
ARM 3 Core 동작 Test
Keil 컴파일러 사용법
내부 LED 동작 프로그래밍
----------------------------------------------------------------------------
ARM 3 Core 동작 Test
SERIAL 단자에 USB를 연결하고 카메라를 장착한다.
하이퍼 터미널을 실행시켜 통신 설정을 해준다.
[1]번부터 [a]까지 실행시켜 ARM3가 제대로 동작하는지 확인한다.
[1]번 'LED test'는 LED 단자에 불이 조작에 따라 켜고 꺼지면 정상 작동하는 것이다.
[2]번 'Timer test'는 LED 단자의 일정한 간격으로 깜빡거린다면 정상 작동하는 것이다.
[3]번 RTC test는 실시간으로 시간이 작동하면 정상 작동이다.
...
Keil 컴파일러 사용법
Keil 컴파일러는 알고 쓰면 편하지만 모르면 복잡한 컴파일러이다.
- Ctrl키를 누른 상태에서 마우스 휠을 위로 움직이면 글자 크기가 늘어나고 휠을 아래로 내리면 글자 크기가 줄어든다.
- 사용가능 ARM Core의 목록을 보고 싶다면 Pack Installer를 클릭해서 정보를 살펴보면 된다.
- 실행환경 설정을 하고 싶다면 주사위 같이 생긴 버튼을 눌러주면 된다.
- Ctrl + n을 생성하여 코드를 작성할 문서를 생성해주고 원하는 이름과 파일형식을 지정하여 저장해준다.
생성된 파일을 프로젝트에 추가해주어야 한다.
- 새 프로젝트를 생성하기 위해서는 우선 새로운 폴더를 하나 만들고 'Project' -> 'New uVision Project...' 를 선택한 후 폴더의 경로를 지정해주면 해당 폴더 안에 파일들이 생성된다.
폴더를 지정해 주고 나면 디바이스 설정 창이 나온다. 디바이스 설정 창에서 Software Packs을 선택하고 search에서는 디바이스의 전체 이름을 검색한 후 선택해준다.
실행 환경 설정에서 'Core', 'Startup', 'Framework', 'GPIO', 'RCC'의 체크박스를 선택해준다.
(추가 사용할 기능이 있으면 추가적으로 체크박스를 선택해주면 된다.)
체크 박스를 선택했을 시 노란색이 뜨면 경고이다. 경고 메세지를 확인하여 수정해주면 노란색이 초록색으로 변동하게 된다.
내부 LED 동작 프로그래밍
PA2가 low인 상태에서 PA0가 high일 때 LED에 불이 들어오게 된다.
해당 프로그램을 3가지 방식으로 작성해본다.
1. 단순 코딩(메모리의 주소 값을 사용하여 메모리에 직접 접근)
2. 헤더 파일을 사용
3. firmware를 사용
데이터시트에는 레지스터 정보가 없다. 레지스터 정보를 확인하려면 RM0008이라는 'Reference manual'을 참조해야 한다. 페이지 수가 천페이지를 넘기 때문에 원하는 내용을 효율적으로 검색하기 위해서 책갈피를 사용하해야 한다.
GPIO(General Purpose Input/Output)가 아니면 APIO(Alternative Purpose Input/Output)라고 생각하면 된다.
GPIO를 사용하여 LED를 동작시키는 코딩을 해보자.
- GPIO레지스터는 설정 레지스터, 데이터 레지스터, 셋/리셋 레지스터와 잠금레지스터로 구성된다.
- 지금까지 사용한 output방식은 push-pull 방식이다. open-drain방식은 따로 설명할 예정이다.
GPIO_CRL은 GPIO 0 - 7번까지 입출력 설정을 해주는 레지스터이다.
output모드는 어떤 값을 넣어도 상관없다.
BSRR레지스터로 BRR의 기능을 사용할 수 있다.
컴파일 시 요술봉을 누른 후
클럭 공급이 필요하다.
define 값을 사용하지 않고 header 파일을 사용해 코딩을 해보자.
헤더 파일을 사용할 때 원하는 구조체의 양식을 보고 싶다면 구조체 위에서 'F12'키를 누르면 구조체가 있는 자리로 이동한다.
firmware 라이브러리를 활용하여 프로그램을 만들 수도 있다.
/*** 코드 ***/
#include <stm32f10x.h> |
'Busan IT > ARM Controller' 카테고리의 다른 글
ARM Clock 설정 (0) | 2015.10.12 |
---|---|
내부 LED 반전 프로그램 만들기 (0) | 2015.10.08 |
ARM Core3 M3 프로그래밍 환경 설정 (0) | 2015.10.05 |
ADC 전압측정 (0) | 2015.09.18 |
Analogue to Digital Converter (0) | 2015.09.17 |