使用英飞凌Aurix系列TC334芯片点亮LED
大家好,我是左工,前面我们已经搭建了英飞凌Aurix系列TC334的开发环境。今天我们来聊聊如何运用其Port外设实现对板载LED灯珠的亮灭控制。
前言
TC334使用Port模块控制引脚的输入和输出及片外与片内模块信号的映射。Port模块也称为端口,TC334为了管理众多的Pin脚,将各个Pin进行分组由对应的Port模块进行管理,如P00就包含了P00.0~P00.9等端口。对于每个非特殊的Pin引脚,输出模式可选择推挽输出和开漏输出,根据端口控制的不同,可配置为通用输出和复用输出。其中通用输出是指该Pin引脚的输出电平直接由程序写入端口输出寄存器进行控制,例如我们今天将用到的通用推挽输出模式,写入寄存器输出高低电平控制外部LED的亮灭。
一、工程创建
利用上一节文章“搭建英飞凌Aurix系列TC334芯片免费开发工具链”中所描述的方法创建一个名为“LedControl”的工程,如下图所示。
工程创建完成后,我们会在导引栏中看见如下文件和文件夹。其中文件“Cpu0_Main.c”就是我们本次需要操作的文件。
我们双击打开该文件,找到主函数“core0_main”,TC334运行后,将首先运行该函数。我们可以看见该函数里面有一个while循环。我们将把代码写在这个while循环附近。
用如下代码替换上图中被红色框标出的while循环。
IfxPort_setPinMode(&MODULE_P02,5,IfxPort_Mode_outputPushPullGeneral);
while(1)
{
for(int i = 0;i<20*1000*1000;i++);
IfxPort_setPinState(&MODULE_P02,5,IfxPort_State_toggled);
}
添加完成后如下图所示。
添加完成后,我们本次实验所有代码就写完了,很简单吧。那么这几行代码是什么意思呢?
IfxPort_setPinMode(&MODULE_P02,5,IfxPort_Mode_outputPushPullGeneral);
上面这行代码中“&MODULE_P02,5”表示设置P02.5端口,这与硬件原理图中的端口对应。“IfxPort_Mode_outputPushPullGeneral”意思是将P02.5端口设置为推挽输出。
for(int i = 0;i<20*1000*1000;i++);
上面一行代码起到唯一作用就是拖延时间,让芯片忙一会儿,也就同步延时。通过调整“20*1000*1000”的大小,可以改变LED灯的闪烁频率。
IfxPort_setPinState(&MODULE_P02,5,IfxPort_State_toggled);
最后一行代码的作用将P02.5端口的输出状态翻转,从而实现LED灯的亮灭。
二、下载调试
程序编写完毕后,我们点击任务栏中的编译按钮。
编译完成后,在输出窗口可以看见“编译完成,无错误,无警告”的字样。
然后我们通过Type-C将测试板与你的电脑相连。
点击任务栏中的下载按钮。
下载完成后,在输出窗口可以看见“下载成功”的字样。
此时你就能看见LED等闪烁了。
LED闪烁
总结
今天我们介绍了如何运用TC334芯片Port外设实现对板载LED灯珠的亮灭控制。后续我们将继续介绍如何完成该芯片底层其他基础模块的基本配置,包括CAN通讯模块,ADC采样模块等。敬请收藏关注。
如需测试板,请点击。
https://store.weixin.qq.com/shop/b/feHVuMfOAmRCoHk?entrance_id=h5
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)