关于#TMC#的问题,如何解决?

求一个TM4C123GXL的红外代码,能用ccs写的 我真的快被折磨麻了
TM4C123GXL

  • 这篇文章:tm4c123gxl库函数调包侠养成(五)-------相关头文件功能整理 也许能够解决你的问题,你可以看下
  • 除此之外, 这篇博客: 单片机 TM4C123GXL 学习 例程中的 3.6 定时器 定时中断 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #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)
        {
        }
    }