这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 竞赛辅导 » 英飞凌TC264学习(四)串口通信UART

共8条 1/1 1 跳转至

英飞凌TC264学习(四)串口通信UART

高工
2022-01-16 12:11:57     打赏

英飞凌TC264学习(四)串口通信UART

串口部分的函数在LQ_UART.c中


TC264有四路UART中断,需要中断可以来配置中断,与外部中断一样,中断服务函数,中断号,优先级,不需要中断的话就不用配置,初始化之后就可以使用。


例子:

主函数:


int core0_main (void)

{

    //char txt[16];


// 关闭CPU总中断

IfxCpu_disableInterrupts();


// 关闭看门狗,如果不设置看门狗喂狗需要关闭

IfxScuWdt_disableCpuWatchdog(IfxScuWdt_getCpuWatchdogPassword());

IfxScuWdt_disableSafetyWatchdog(IfxScuWdt_getSafetyWatchdogPassword());


// 读取总线频率

g_AppCpu0.info.pllFreq = IfxScuCcu_getPllFrequency();

g_AppCpu0.info.cpuFreq = IfxScuCcu_getCpuFrequency(IfxCpu_getCoreIndex());

g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();

g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);


// 按键初始化

GPIO_KEY_Init();

// LED灯所用P10.6和P10.5初始化

GPIO_LED_Init();


// 串口初始化,串口P14.0管脚输出,P14.1输入,波特率115200

UART_InitConfig(UART0_RX_P14_1,UART0_TX_P14_0, 115200);


// 开启CPU总中断

IfxCpu_enableInterrupts();


// 通知CPU1,CPU0初始化完成

IfxCpu_releaseMutex(&mutexCpu0InitIsOk);

// 切记CPU0,CPU1...不可以同时开启屏幕显示,否则冲突不显示

mutexCpu0TFTIsOk=0;         // CPU1: 0占用/1释放 TFT


    Test_ADC_7mic();       //PASS,测试ADC\UART0、STM延时和闪灯,通过UART0打印 AN0--AN7共8个通道ADC转换数据


    while (1) //主循环

    {

        LED_Ctrl(LED0,RVS);        //电平翻转,LED闪烁

        delayms(100);

    }

}


UART初始化函数:


/*************************************************************************

*  函数名称:void UART_InitConfig(UART_RX_t RxPin, UART_TX_t TxPin, unsigned long baudrate)

*  功能说明:串口模块初始化

*  参数说明:

  * @param    RxPin   : 串口接收管脚

  * @param    TxPin   : 串口发送管脚

  * @param    baudrate: 波特率

*  函数返回:字节

*  修改时间:2020年3月10日

*  备    注:UART_InitConfig(UART0_RX_P14_1,UART0_TX_P14_0, 115200);   //初始化串口0 波特率 115200 无奇偶校验 1停止位 使用管脚P14_0 P14_1

*************************************************************************/

void UART_InitConfig(UART_RX_t RxPin, UART_TX_t TxPin, unsigned long baudrate)

{

//省略。。。

}


测试函数:


/*************************************************************************

*  函数名称:void Test_Beacon7mic(void)

*  功能说明:采集测试6+1麦克风阵列

*  参数说明:无

*  函数返回:无

*  修改时间:2020年3月10日

*  备    注:    ADC悬空不为零

*************************************************************************/

void Test_ADC_7mic(void)

{

    char txt[200];

    unsigned int MICVmin[8];


    ADC_InitConfig(ADC0, 80000); //初始化

    ADC_InitConfig(ADC1, 80000); //初始化

    ADC_InitConfig(ADC2, 80000); //初始化

    ADC_InitConfig(ADC3, 80000); //初始化

    ADC_InitConfig(ADC4, 80000); //初始化

    ADC_InitConfig(ADC5, 80000); //初始化

    ADC_InitConfig(ADC6, 80000); //初始化

    ADC_InitConfig(ADC7, 80000); //初始化   如果使用龙邱母板  则测分压后的电池电压,具体可以看母板原理图

    delayms(500);                //延时等待

UART_PutStr(UART0,"\n-------------------------------------------------\n");//分界线

while(1)

{

MICVmin[0]=ADC_Read(ADC0);

MICVmin[1]=ADC_Read(ADC1);

MICVmin[2]=ADC_Read(ADC2);

MICVmin[3]=ADC_Read(ADC3);

MICVmin[4]=ADC_Read(ADC4);

MICVmin[5]=ADC_Read(ADC5);

MICVmin[6]=ADC_Read(ADC6);

MICVmin[7]=ADC_Read(ADC7);


//转换结果为字符串,串口发送或者屏幕显示

sprintf(txt,"[0]:%05d  [1]:%05d  [2]:%05d  [3]:%05d  [4]:%05d  [5]:%05d  [6]:%05d  [7]:%05d  \r\n",MICVmin[0],MICVmin[1],MICVmin[2],MICVmin[3],MICVmin[4],MICVmin[5],MICVmin[6],MICVmin[7]);

//串口发送到上位机

UART_PutStr(UART0,txt);//AN0--AN7十进制数据输出到上位机

    LED_Ctrl(LED0,RVS);        //电平翻转,LED闪烁

delayms(500);              //延时等待

}

}


LQ_UART.c相关函数:


/*************************************************************************

*  函数名称:void UART_PutStr(UART_t  uratn, char *str)

*  功能说明:UART发送字符串函数(遇 NULL 停止发送),使用前请先初始化对应串口

*  参数说明:uratn : UART0 - UART3/ str   : 要打印的字符串地址

*  函数返回:无

*  修改时间:2020年3月10日

*  备    注:UART_PutStr(UART3, "123456789"); //发送9个字节

*************************************************************************/

void UART_PutStr(UART_t  uratn, char *str)

{

   while(*str)

    {

        UART_PutChar(uratn, *str++);

    }

}


/*************************************************************************

*  函数名称:void UART_PutChar(UART_t  uratn, char ch)

*  功能说明:UART发送字节函数,使用前请先初始化对应串口

*  参数说明:uratn : UART0 - UART3/ ch    : 要打印的字符

*  函数返回:无

*  修改时间:2020年3月10日

*  备    注:UART_PutChar(UART0, 'a');  //打印字符a

*************************************************************************/

void UART_PutChar(UART_t  uratn, char ch)

{

IfxAsclin_Asc_blockingWrite(&g_UartConfig[uratn], ch);

}





关键词: TC264     学习     串口    

专家
2022-01-16 12:24:29     打赏
2楼

感谢分享!


专家
2022-01-16 12:25:29     打赏
3楼

感谢分享!


专家
2022-01-16 12:40:04     打赏
4楼

写的好,学习了


专家
2022-01-16 12:51:46     打赏
5楼

学习学习


专家
2022-01-16 14:12:44     打赏
6楼

感谢分享


高工
2022-01-16 15:04:08     打赏
7楼

感谢楼主的分享,很实用了。


工程师
2022-01-16 23:17:43     打赏
8楼

感谢您的分享


共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]