stm32F407 연결 대사식 적외선 파이프 샘플

2177 단어 STM32
이 예제에서는 Led 램프를 적외선 배관으로 표시하고 직렬 인쇄를 지원합니다.
stm32F407 개발판에는 두 개의 led등, DS0과 DS1이 있다
그래서 작성해야 할 코드는 다음과 같다:led.h、led.c、hong.c、hong.h、main.c(직렬 코드가 통합됨)
직접 부호:
led.h
#ifndef __LED_H
#define __LED_H
void LED_Init();
#endif

hong.h
#ifndef __HONG_H
#define __HONG_H
void Hong_Init();
#endif

led.c
#include "stm32f4xx.h"
#include "led.h"
void LED_Init()
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);
	GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_10 | GPIO_Pin_9;
	GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_OUT;
	GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOF,&GPIO_InitStructure);
	GPIO_SetBits(GPIOF,GPIO_Pin_9 | GPIO_Pin_10);
}

hong.c
#include "hong.h"
#include "stm32f4xx.h"
void Hong_Init()
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);
	GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_0;
	GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_IN;
	GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOE,&GPIO_InitStructure);
}

main.c 
#include "stm32f4xx.h"
#include "led.h"
#include "usart.h"
#include "delay.h"
#include "hong.h"
int main()
{
	uint8_t data ;//  IO     
	delay_init(168);
	uart_init(115200);
	LED_Init();
	Hong_Init();  //     OUT       
	GPIO_SetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);//  led      
	while(1)
	{
		data = GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_0); //     
		if(0 < data)  //           ,        
		{
			GPIO_ResetBits(GPIOF,GPIO_Pin_9);
			GPIO_SetBits(GPIOF,GPIO_Pin_10);
			delay_ms(1000);
			printf("data = 1 
"); // , } else { GPIO_ResetBits(GPIOF,GPIO_Pin_10); GPIO_SetBits(GPIOF,GPIO_Pin_9); delay_ms(1000); printf("data = 0.
"); } } }

좋은 웹페이지 즐겨찾기