求一个TM4C123GXL的红外代码,能用ccs写的 我真的快被折磨麻了
TM4C123GXL
#include <stdint.h> /*包含了例如uint8_t等的定义*/
#include <stdbool.h>
#include <math.h>
#include <stdio.h>
#include "inc/hw_memmap.h" /*外设和内存的基地址定义*/
#include "inc/hw_types.h" /* 常用类型和宏 */
#include "inc/hw_ints.h" /* 中断分配宏 */
#include "driverlib/fpu.h" /* FPU */
#include "driverlib/sysctl.h" /* 时钟 宏 */
#include "driverlib/rom.h" /* ROM 宏 */
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "driverlib/interrupt.h"
#include "driverlib/uart.h"
#include "driverlib/timer.h"
void init_LED(void)
{
SysCtlPeripheralEnable( SYSCTL_PERIPH_GPIOF); /* 使能GPIOF时钟 */
while (!SysCtlPeripheralReady( SYSCTL_PERIPH_GPIOF))
; /* 等待使能完成 */
GPIOPinTypeGPIOOutput( GPIO_PORTF_BASE,
GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3); /* PF1 PF2 PF3设置为输出模式 */
GPIOPinWrite( GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_PIN_1); /* PF1输出高电平 */
GPIOPinWrite( GPIO_PORTF_BASE, GPIO_PIN_1, 0); /* PF1输出低电平 */
}
void init_key(void)
{
SysCtlPeripheralEnable( SYSCTL_PERIPH_GPIOF); /* 使能GPIOF时钟 */
while (!SysCtlPeripheralReady( SYSCTL_PERIPH_GPIOF))
; /* 等待使能完成 */
GPIOPinTypeGPIOInput( GPIO_PORTF_BASE, GPIO_PIN_0 | GPIO_PIN_4); /* PF0 PF4设置为输入模式 */
GPIOPadConfigSet( GPIO_PORTF_BASE, GPIO_PIN_0 | GPIO_PIN_4,
GPIO_STRENGTH_2MA,
GPIO_PIN_TYPE_STD_WPU); /* PF0 PF4设置为上拉电阻 */
}
void Timer0IntHandler(void)
{
TimerIntClear( TIMER0_BASE, TIMER_TIMA_TIMEOUT); /* 清除标志位 */
GPIOPinWrite(
GPIO_PORTF_BASE, GPIO_PIN_1,
(GPIOPinRead( GPIO_PORTF_BASE, GPIO_PIN_1) == 0) ? GPIO_PIN_1 : 0); /* 翻转PF1电平 */
}
void init_timer(void)
{
SysCtlPeripheralEnable( SYSCTL_PERIPH_TIMER0); /* 使能时钟 */
/* TimerConfigure(TIMER0_BASE, TIMER_CFG_ONE_SHOT);//单次计数模式 */
TimerConfigure( TIMER0_BASE, TIMER_CFG_PERIODIC); /* 周期性计数模式 */
TimerLoadSet( TIMER0_BASE, TIMER_A, SysCtlClockGet() / 10 - 1); /* 计数频率10HZ */
TimerIntRegister( TIMER0_BASE, TIMER_A, Timer0IntHandler); /* 注册中断函数 */
IntPrioritySet( INT_TIMER0A, 0); /* 设置中断优先级 */
TimerIntEnable( TIMER0_BASE, TIMER_TIMA_TIMEOUT); /* TIMEOUT标志位触发中断 */
TimerEnable( TIMER0_BASE, TIMER_A); /* TIMER0A开始计数,当计数值等于TimerLoadSet,触发中断 */
IntEnable( INT_TIMER0A); /* 使能TIMER0A中断 */
}
void main(void)
{
FPUEnable(); /* 浮点计算使能 TM4C固有 */
FPULazyStackingEnable();
SysCtlClockSet(
SYSCTL_SYSDIV_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ); /* 设置系统时钟为80MHZ */
init_LED();
init_key();
init_timer();
IntMasterEnable(); /* 开总中断 */
while (1)
{
}
}