本帖最后由 JasonLee27 于 2021-2-5 09:58 编辑
#技术资源# 硬件环境:AC781x通用开发板
软件环境:keil5.23 AutoGen studio 2.23
一,环境准备
AC781x通用开发板和keil都已经有了,从官网下载最新的autoGen studio,目前autogen支持在线更新,再更新的最新版本。当前我使用的是2.2.3版本
二,工程配置
打开autogen,新建一个AC7811QBGE工程。整个配置过程分三个步骤:
1,配置时钟
这里我们使用外部晶振,经PLL倍频到96M。有个坑要注意,一定要在CKGEN下面 HSE选择 XOSC,否则时钟配置界面你无法选择时钟源为外部时钟。
选好后就配置时钟了,这里很贴心的给出了计算公式,默认配置就是产生96M,所以基本也没什么修改的了
2,配置CAN模块
这里我不打算用GPIO去控制standby,直接硬件控制,故配置CAN模块StandbyEnable
模块配置每个参数和调用驱动的结构体形参一一对应。这里我们不启用过滤器
3,最后检查GPIO
吐槽一下,这张图虽然做的很大了,但还是看不太清,感觉不如像NXP 的DS32,做成一个表格来的好。
完成后,进行工程设定,因为autogen本身不带编译环境,所以最终会生成keil或IAR下工程,我们这里选择keil环境:
一切完成,点击生成代码,然后打开生成的工程,简单的添加一段定期发送报文的代码:
/* USER CODE BEGIN 2 */
CAN_Standby(CAN1, 0);
mdelay(1);
msg.ID = 0x100;
msg.DLC = 8;
msg.IDE = 0;
msg.RTR = 0;
msg.Data[0] = 1;
msg.Data[1] = 2;
msg.Data[2] = 3;
msg.Data[3] = 4;
msg.Data[4] = 5;
msg.Data[5] = 6;
msg.Data[6] = 7;
msg.Data[7] = 8;
/* USER CODE END 2 */
/* Infinite loop */
while(1)
{
/* USER CODE BEGIN WHILE */
CAN_MessageSend(CAN1, &msg, TRANSMIT_PRIMARY);
mdelay(500);
/* USER CODE END WHILE */
}
/* USER CODE BEGIN 3 */
/* USER CODE END 3 */
}
编译下载后,通过CAN上位机工具,就能看到发送的报文了。
最后附上工程。
cansample.rar
(850.65 KB)
|