STM32 - 라이브러리 함수 버전 - 디지털 파이프 동적 디스플레이 프로그램
9472 단어 STM32 학습의 길
네 자리 공양극 디지털 파이프, 세그먼트 코드 0에 표시
main.c
#include "sys.h"
#include "delay.h"
//#include "led.h"
#include "num.h"
int main(void)
{
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); // PLL
delay_init(); //
NUM_MOVE(); //
}
num.c
#include "num.h"
#include "delay.h"
//
unsigned char seg[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
//
void NUM_Init(void){
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); // GPIO , GPIO
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //
//
GPIO_InitStructure.GPIO_Pin = NUM_STATIC_GPIO; // GPIO
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //
GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz; // 50MHz
GPIO_Init(GPIOD, &GPIO_InitStructure); //IO
//
GPIO_InitStructure.GPIO_Pin = NUM_STATIC_BIT; // GPIO
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //
GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz; // 50MHz
GPIO_Init(GPIOC, &GPIO_InitStructure); //IO
GPIO_ResetBits(GPIOC, NUM_STATIC_BIT); // 0
}
//
void NUM_MOVE(void){
uint16_t i;
NUM_Init();
while(1)
{
for(i=0;i<16;i++)
{
GPIO_Write(GPIOD,seg[i]); //
delay_ms(3000);
}
}
}
num.h
#include "sys.h"
//
#define NUM_STATIC_GPIO GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7
#define NUM_STATIC_BIT GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3
//
void NUM_MOVE(void);