59 lines
1.7 KiB
C
59 lines
1.7 KiB
C
#ifndef _IRDA_H_
|
|
#define _IRDA_H_
|
|
|
|
#include "stm32f10x_gpio.h"
|
|
|
|
enum
|
|
{
|
|
CHECK_ODD,
|
|
CHECK_EVEN,
|
|
CHECK_NONE,
|
|
};
|
|
|
|
#define IRDA_BAUD 1200
|
|
#define IRDA_DATABITS 8
|
|
#define IRDA_CHECKBIT CHECK_EVEN
|
|
#define IRDA_STOPBIT 1
|
|
|
|
#define IRDA_BAUD_TIMER TIM3
|
|
#define IRDA_BAUD_TIMER_CLK RCC_APB1Periph_TIM3
|
|
|
|
#define IRDA_BAUD_IRQHandler TIM3_IRQHandler
|
|
|
|
|
|
#define IRDA_BAUD_PRESC 100
|
|
#define IRDA_BAUD_PERIOD (SystemCoreClock/IRDA_BAUD_PRESC/IRDA_BAUD)
|
|
|
|
#define IRDA_TX_PIN GPIO_Pin_0
|
|
#define IRDA_TX_PORT GPIOA
|
|
#define IRDA_TX_PORT_CLK RCC_APB2Periph_GPIOA
|
|
|
|
#define IRDA_RX_PIN GPIO_Pin_1
|
|
#define IRDA_RX_PORT GPIOC
|
|
#define IRDA_RX_PORT_CLK RCC_APB2Periph_GPIOC
|
|
|
|
#define IRDA_RX_PORT_SOURCE GPIO_PortSourceGPIOC
|
|
#define IRDA_RX_PIN_SOURCE GPIO_PinSource1
|
|
#define IRDA_RX_LINE EXTI_Line1
|
|
#define RX_START_IRQHandler EXTI1_IRQHandler
|
|
|
|
#define IRDA_RX_BIT_VAL GPIO_ReadInputDataBit(IRDA_RX_PORT, IRDA_RX_PIN)
|
|
|
|
#define IRDA_TX_BUFFER_SIZE 255
|
|
#define IRDA_RX_BUFFER_SIZE 255
|
|
|
|
#define PWM_TIMER TIM2
|
|
#define PWM_TIMER_CLK RCC_APB1Periph_TIM2
|
|
#define PWM_TIMER_CHANNEL 1
|
|
#define PWM_PRESC 100
|
|
#define PWM_FRE 38000
|
|
#define PWM_PERIOD (SystemCoreClock/PWM_FRE/PWM_PRESC)
|
|
|
|
#define IRDA_BAUD_COFF ((11.0 * 1000.0) / IRDA_BAUD)
|
|
|
|
void IRDA_PWM_Init();
|
|
void IRDA_GPIO_RX_init(void);
|
|
void IRDA_TX(u8 *buf, u8 length);
|
|
void baud_timer_init(u32 preriod);
|
|
void create_IRDA_task(void);
|
|
#endif |