本帖最后由 石玉 于 2019-8-16 14:57 编辑
软件环境:
操作系统:windows 10
IDE:CCS7.4
代码生成工具:HALCoGen 04.07.01
硬件环境:
目标板:TMDS570LS31HDK
1.新建CCS工程
打开CCS,File->New->CCS Project,选择控制器型号,仿真器型号,输入工程名,选择空工程
工程结构如下图所示
2.新建HALCoGen 工程
打开HALCoGen,File->New->Project,选择芯片型号,填写工程名,选择CCS工程目录,选择开发工具为TI的
可以看到对芯片的功能可以图形化配置,这里我们不配置,直接File->Generate Code生成代码
生成后CCS工程如下所示,可以看到hal下多了源文件和头文件,hcg是HALCoGen工程文件
3.编写主函数
打开hal下的sys_main.c,注意代码中的“USER CODE BEGIN”和“USER CODE END”,用户编写的代码要放在USER CODE当中,不然重新生成代码后USER CODE之外的代码不会保留。
查看TMDS570LS31HDK板原理图,我们让D5闪烁。
D5连接的IO是HET1[00]。所以我们在代码中控制HET1模块的第0个引脚输出。
/* USER CODE BEGIN (0) */
#include "delay.h"
#include "gio.h"
#include "reg_het.h"
/* USER CODE END */
/* Include Files */
#include "sys_common.h"
/* USER CODE BEGIN (1) */
/* USER CODE END */
/** @fn void main(void)
* @brief Application main function
* @note This function is empty by default.
*
* This function is called after startup.
* The user can use this function to implement the application.
*/
/* USER CODE BEGIN (2) */
/* USER CODE END */
uint8 emacAddress[6U] = {0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU, 0xFFU};
uint32 emacPhyAddress = 1U;
int main(void)
{
/* USER CODE BEGIN (3) */
gioInit();
muxInit();
/* Set high end timer GIO port hetPort pin direction to all output */
gioSetDirection(hetPORT1, 0xFFFFFFFF);
while(1)
{
gioSetPort(hetPORT1, gioGetPort(hetPORT1) ^ (1<<0));
my_delay(1000);
}
/* USER CODE END */
return 0;
}
/* USER CODE BEGIN (4) */
/* USER CODE END */
主函数中添加控制IO需要的头文件,然后初始化IO和引脚复用,gioSetDirection将HET1的所有引脚设置为输出,gioSetPort设置输出值,编译工程,如果提示头文件找不到,在工程->properties->include options中添加头文件的路径,开始仿真,可以发现开发板上的D5开始闪烁。
此内容由EEWORLD论坛网友石玉原创,如需转载或用于商业用途需征得作者同意并注明出处