项目简介
本项目展示了如何使用MPLAB® Code Configurator (MCC) Melody在PIC18 - Q84系列设备上设置和使用新的CAN FD(Controller Area Network Flexible Data - Rate)模块。该软件可加速波特率、接收掩码/过滤器以及接收/发送FIFO缓冲区等设置的配置过程。项目具备周期性发送CAN帧、回显特定消息ID的消息以及根据特定消息ID的数据设置LED等功能。
项目的主要特性和功能
- 周期性发送:每隔1秒周期性地发送ID为0x100、数据为0x0011223344556677的CAN帧。
- 消息回显:当接收到消息ID为0x111的消息时,会以消息ID 0x222回显相同的数据帧。
- LED控制:根据接收到的消息ID为0x585的消息的最低有效位来控制板载LED的开关。
安装使用步骤
前提条件
确保已安装相关软件。
硬件连接
使用 ATA6563 Click board 硬件,按照文档中的硬件设置说明进行连接。
项目配置
- 在MPLAB X中创建一个新的独立项目,选择PIC18F57Q84作为微控制器。
- 点击 MCC 按钮,若未安装MCC,先按照 此指南 进行安装。
- 点击 "Select MCC Melody" 并完成设置。
- 配置模块:
- 配置 "Clock Control" 模块,使用外部10 MHz晶体振荡器和内部PLL,使工作频率达到40 MHz。
- 在 "Configuration Bits" 模块中,更改外部振荡器选择设置并禁用JTAG。
- 添加CAN FD模块,进行时钟设置、位速率设置、一般设置、FIFO设置和过滤器对象设置。
- 添加TMR0模块,配置为每1秒生成一次中断。
- 使用 Pin Grid View 选项卡配置引脚,将PORTB0设置为CANTX,PORTB3设置为CANRX,PORTF3设置为输出以控制板载LED。
- 点击 Generate 按钮生成应用程序代码。
中断代码实现
- 创建
canfd_interrupts.c
文件,实现三个中断处理函数:CAN1_FIFO1CustomHandler
、CAN1_FIFO2CustomHandler
和Timer0_CustomHandler
。 - 创建
canfd_interrupts.h
文件,包含上述函数的原型。 - 在
main.c
文件的主函数中添加以下代码: ```c
include "mcc_generated_files/system/system.h"
include "canfd_interrupts.h"
int main(void) { SYSTEM_Initialize();
// Enable the Global High Interrupts
INTERRUPT_GlobalInterruptHighEnable();
// Enable the Global Low Interrupts
INTERRUPT_GlobalInterruptLowEnable();
Timer0_OverflowCallbackRegister(Timer0_CustomHandler);
CAN1_FIFO1NotEmptyCallbackRegister(CAN1_FIFO1CustomHandler);
CAN1_FIFO2NotEmptyCallbackRegister(CAN1_FIFO2CustomHandler);
while(1)
{
}
} ```
编译和烧录
完成上述步骤后,进行项目的编译和烧录操作。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】