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);

좋은 웹페이지 즐겨찾기