/************************************************
제목 : 16x32 MDOT
보드 : STM3210E-EVAL
LCD : 16x32 SAM KWANG SMM-63216
최초작성일 : 2011.08.23
작성자 : 부산직업능력개발원 정보기술 ###
핀연결
1(RDATA) : PD0
2(GDATA) : PD1
3(A0) : PD2
4(A1) : PD3
5(A2) : PD4
6(A3) : PD5
7(ENABLE) : PD6
8(LATCH) : PD7
9(CLX) : PD8
10(GND) : GND
*************************************************/
#include "stm32f10x.h"
#define RD(x) x?(GPIOD->ODR |= GPIO_Pin_0) : (GPIOD->ODR &= ~GPIO_Pin_0)
#define GD(x) x?(GPIOD->ODR |= GPIO_Pin_1) : (GPIOD->ODR &= ~GPIO_Pin_1)
#define A0(x) x?(GPIOD->ODR |= GPIO_Pin_2) : (GPIOD->ODR &= ~GPIO_Pin_2)
#define A1(x) x?(GPIOD->ODR |= GPIO_Pin_3) : (GPIOD->ODR &= ~GPIO_Pin_3)
#define A2(x) x?(GPIOD->ODR |= GPIO_Pin_4) : (GPIOD->ODR &= ~GPIO_Pin_4)
#define A3(x) x?(GPIOD->ODR |= GPIO_Pin_5) : (GPIOD->ODR &= ~GPIO_Pin_5)
#define EN(x) (x==0)?(GPIOD->ODR |= GPIO_Pin_6) : (GPIOD->ODR &= ~GPIO_Pin_6)
#define CK(x) x?(GPIOD->ODR |= GPIO_Pin_8) : (GPIOD->ODR &= ~GPIO_Pin_8)
#define LA(x) (x==0)?(GPIOD->ODR |= GPIO_Pin_7) : (GPIOD->ODR &= ~GPIO_Pin_7)
void delay(vu32 t){
while(t--);
}
int main(void){
vu8 k,j;
vu16 i;
GPIO_InitTypeDef GPIO;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
GPIO.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO.GPIO_Speed=GPIO_Speed_50MHz;
GPIO.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_6;
GPIO_Init(GPIOD, &GPIO);
EN(1);
while(1)
{
for(k=0; k<16; k++){
i=200;
for(j=0;j<32;j++){
RD(0); GD(1);
CK(1);
CK(0);
}
A0(k & 0x01);
A1(k & 0x02);
A2(k & 0x04);
A3(k & 0x08);
LA(1); LA(0);
do{
CK(1);
CK(0);
}while(i--);
}
}
}
'컴퓨터 > Cortex-M3(STM32F103)' 카테고리의 다른 글
STM3210B 보드에 있는 LED 점멸하기(GPIO) (0) | 2012.02.29 |
---|---|
[STM3210B] MFND-100 7-SEGMENT MODULE 구동 (0) | 2011.09.30 |
[STM3210B]GLCD 만능달력 (0) | 2011.07.12 |
[STM3210B]RTC를 이용하여 TEXT LCD에 날짜가 표시되는 시계 (0) | 2011.06.30 |
[STM3210B]TEXT LCD Module MLCD-100 기본 구동 프로그램 (0) | 2011.06.28 |