智能汽车竞赛智能汽车竞赛Infineon_TC264学习笔记学习笔记
文章目录文章目录外部中断GPIO外部中断配置中断服务函数初始化外部中断函数串口(uart)串口初始化STM(系统定时器)STM初始化函数ADCADC初始化编码器正交解码初始化
PWM(由GTM产生)TFT屏幕
外部中断外部中断
GPIO外部中断配置外部中断配置
tc264的GPIO外部中断,分为4组,每组对应上面一个中断函数,每组一次只能使用其中的一个PIN口。
/* GPIO外部中断 */
IFX_INTERRUPT(PIN_INT0_IRQHandler, PIN_INT0_VECTABNUM, PIN_INT0_PRIORITY);
IFX_INTERRUPT(PIN_INT1_IRQHandler, PIN_INT1_VECTABNUM, PIN_INT1_PRIORITY);
IFX_INTERRUPT(PIN_INT2_IRQHandler, PIN_INT2_VECTABNUM, PIN_INT2_PRIORITY);
IFX_INTERRUPT(PIN_INT3_IRQHandler, PIN_INT3_VECTABNUM, PIN_INT3_PRIORITY);
PIN_INTx_IRQHandler:中断服务函数名
PIN_INTx_VECTABNUM:选择中断的处理者(CPU0、CPU1、DMA)
PIN_INTx_PRIORITY:中断优先级(0-255),数字越大优先级越高,优先级0不可用
中断服务函数中断服务函数
void PIN_INTx_IRQHandler(void)
{
//用户代码
}
初始化外部中断函数初始化外部中断函数
void PIN_Exti(GPIO_Name_t pin, IfxPort_InputMode mode)
配置好以上三个函数,最基本的配置好以上三个函数,最基本的GPIO中断就配置好了中断就配置好了
串口(串口(uart))
ASC异步串行通信,可以作为UART和汽车LIN总线使用。(智能车LIN一般用不到这里主要用到UART)
TC264有4路UART可以使用
串口初始化串口初始化
初始化函数void UART_InitConfig(UART_RX_t RxPin, UART_TX_t TxPin, uint32 baudrate)
RxPin : 串口接收管脚
TxPin : 串口发送管脚
baudrate: 波特率
配置好初始化函数,结合中断、串口收发函数就可以完成基本的串口功能。
STM(系统定时器)(系统定时器)
STM作为系统级的全局定时器,可以为系统提供基础时钟,内有两个比较寄存器,可产生两个独立的中断,以满足需求
TC264有两路STM(STM0/STM1),可提供4路中断
STM初始化函数初始化函数
void STM_InitConfig(STM_t stm, STM_Channel_t channel, uint32 us)
stm : STM标号(STM0 、 STM1)
channel : STM通道(STM_Channel_0 STM_Channel_1)
us : STM定时中断(时间)
配置好初始化函数就可以调用中断、延时等函数实现相关功能。
ADC
理论有8个转换器,可同步转换;每个转换8个通道,精度为8/10/12位。
ADC端口AN可以作为输入口,不可作为输出口,与ARM单片机不同!
ADC初始化初始化
void ADC_InitConfig(ADC_Channel_t channel, unsigned long Freq_Hz)
channel ADC通道
Freq_Hz ADC通道采样频率
注意:ADC有三个模块,通道0-13、16-25、35-49分别属于这三个通道,
这里使用扫描采样方式,因此如果一个ADC模块同时初始化了N个通道,则ADC实际采用率 = Freq_Hz / N
初始化后,结合unsigned short ADC_Read(ADC_Channel_t chn); ADC读取函数就可以实现基本的ADC值读取
使用这两个宏定义可以便捷获取ADC通道和对应的组
/* 获取ADC对应组 */
#define ADC_GetGroup(ADC_Channel) ((ADC_Channel & 0xF000)>>12)
/* 获取ADC对应通道 */
#define ADC_GetChannel(ADC_Channel) ((ADC_Channel & 0x0F00)>>8)
编码器正交解码编码器正交解码
通用定时器单元GPT1 和GPT2 模块具有非常灵活的多功能定时器结构,可用作定
时、事件计数、脉宽测量、脉冲生成、倍频及其它用途。
它们包括5 个16 位定时器,分到两个定时器GPT1 和GPT2 模块中。每个模块中的各
个定时器可在许多不同的模式中独立运行,如门控定时器模式、计数模式、或者和同模块
中其它定时器级联工作。每个模块具有输入/输出功能和与其相关的专用中断。
GPT1 模块有三个定时器/计数器:内核定时器T3 和两个辅助定时器T2、T4。最大的分辨
率为fGPT/4。GPT1 模块的辅助定时器可为内核定时器有选择的配置成重载或捕捉寄存器。
GPT2 模块有两个定时器/计数器:内核定时器T6 和辅助定时器T5。最大的分辨率为fGPT/2。
初始化初始化
void ENC_InitConfig(ENC_InputPin_t InputPin, ENC_DirPin_t DirPin)
InputPin : ENC脉冲输入管脚 LQ_GPT12_ENC.h 中枚举体
DirPin : ENC方向管脚 LQ_GPT12_ENC.h 中枚举体
评论0