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

共3条 1/1 1 跳转至

TC264学习(一)GPIO

高工
2022-01-14 11:31:54     打赏

1.综述:基于龙邱库函数

摄像头接口 龙邱神眼或者OV7725模块

● 数据端口:P02.0-P02.7口,共8位,接摄像头的数据端口;

● 时钟像素:外部中断第0组:P00_4;

● 场信号:外部中断第3组:P15_1;


编码器 推荐GPT12模块,共可以实现5路正交解码增量编码器(兼容带方向编码器)信号采集,任意选择四路即可;

P33_7, P33_6 龙邱TC母板编码器1

P02_8, P33_5 龙邱TC母板编码器2

P10_3, P10_1 龙邱TC母板编码器3

P20_3, P20_0 龙邱TC母板编码器4


电感电压采集模块或者麦克风模块

推荐使用AN0-7,共八路ADC,可以满足chirp声音信号及电磁车电感电压采集;

AN0-3 龙邱TC接四个麦克风模块或者电感


默认电机接口

使用GTM模块,ATOM四个通道可产生4*8共32路PWM,而且各自频率和占空比可调,推荐使用ATOM0的0-7通道;

第一组双路全桥驱动

P23_1 龙邱TC母板MOTOR1_P

P32_4 龙邱TC母板MOTOR1_N

P21_2 龙邱TC母板MOTOR2_P

P22_3 龙邱TC母板MOTOR2_N

第二组双路全桥驱动

P21_4 龙邱TC母板MOTOR3_P

P21_3 龙邱TC母板MOTOR3_N

P20_8 龙邱TC母板MOTOR4_P

P21_5 龙邱TC母板MOTOR4_N


默认舵机接口

使用GTM模块,ATOM四个通道可产生4*8共32路PWM,而且各自频率和占空比可调,推荐使用ATOM2;

P33_10 龙邱TC母板舵机1

P33_13 龙邱TC母板舵机2


默认屏幕显示接口,用户可以使用TFT或者OLED模块

TFTSPI_CS P20_14 龙邱TC母板 CS管脚 默认拉低,可以不用

TFTSPI_SCK P20_11 龙邱TC母板 SPI SCK管脚

TFTSPI_SDI P20_10 龙邱TC母板 SPI MOSI管脚

TFTSPI_DC P20_12 龙邱TC母板 D/C管脚

TFTSPI_RST P20_13 龙邱TC母板 RESET管脚


OLED_CK P20_14 龙邱TC母板OLED CK管脚

OLED_DI P20_11 龙邱TC母板OLED DI管脚

OLED_RST P20_10 龙邱TC母板OLED RST管脚

OLED_DC P20_12 龙邱TC母板OLED DC管脚

OLED_CS P20_13 龙邱TC母板OLED CS管脚 默认拉低,可以不用


默认按键接口

KEY0p P22_0 龙邱TC母板上按键0

KEY1p P22_1 龙邱TC母板上按键1

KEY2p P22_2 龙邱TC母板上按键2

DSW0p P33_9 龙邱TC母板上拨码开关0

DSW1p P33_11 龙邱TC母板上拨码开关1


默认LED接口

LED0p P10_6 龙邱TC母板核心板上LED0 翠绿

LED1p P10_5 龙邱TC母板核心板上LED1 蓝灯

LED2p P20_6 龙邱TC母板上LED0

LED3p P20_7 龙邱TC母板上LED1


默认蜂鸣器接口

BEEPp P33_8 龙邱TC母板上蜂鸣器接口


定时器

有两个CCU6模块 每个模块有两个独立定时器 触发定时器中断

推荐使用CCU6模块,STM用作系统时钟或者延时;


2.LED闪烁实现

#include <include.h>//各个模块的头文件

#include <IfxCpu.h>

#include <IfxScuCcu.h>

#include <IfxScuWdt.h>

#include <IfxStm.h>

#include <IfxStm_reg.h>

#include <LQ_CAMERA.h>

#include <LQ_CCU6.h>

#include <LQ_GPIO_KEY.h>

#include <LQ_GPIO_LED.h>

#include <LQ_MotorServo.h>

#include <LQ_SOFTI2C.h>

#include <LQ_TFT18.h>

#include <LQ_UART.h>

#include <LQ_Inductor.h>

#include <Main.h>

#include "LQ_ImageProcess.h"


App_Cpu0 g_AppCpu0; // brief CPU 0 global data

IfxCpu_mutexLock mutexCpu0InitIsOk = 1;   // CPU0 初始化完成标志位

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


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

*  函数名称:int core0_main (void)

*  功能说明:CPU0主函数

*  参数说明:无

*  函数返回:无

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

*  备    注:

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

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

   

    while (1) //主循环

    {

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

        delayms(100);

    }

}






关键词: TC264     龙邱     学习    

高工
2022-01-14 15:03:58     打赏
2楼

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


工程师
2022-01-14 16:05:21     打赏
3楼

谢谢分享


共3条 1/1 1 跳转至

回复

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