#申请原创#
AT32F405带一路CAN,支持CAN2.0B
下面介绍如何在AT32F405上使用CAN功能。工程还是使用上一篇文章生成的工程。
这里改用PB8 PB9作为CAN的引脚
对应datasheet的描述
默认生成的工程里面已经添加了所需的文件,进入到at32f402_405_wk_config.c,开启中断接收功能
其中CAN_RF0MIEN_INT为接收中断,CAN_ETRIEN_INTCAN_EOIEN_INT为错误中断,CAN_TCIEN_INT为发送完成中断
下面填充中断接收函数,即可实现接收功能
调用can_message_receive函数可以进行can帧的接收
然后测试一下发送,这里在main循环中调用can的发送功能,将收到的can帧发送出去
注意其发送和接收的API结构体不同,要转换一下
然后找一个CAN收发器的模块,来测试一下,注意CAN收发器的电平要为3.3V的,可以使用TI的SN65HVD230
接线是收发器的TX接MCU的TX 收发器的RX接MCU的RX,然后找一个CAN模拟盒,接收发器的CANH和CANL脚
这里使用CAN分析仪发送20帧内容,然后看到CAN分析仪也收到了20帧报文,且内容和发送的一致,说明CAN收发功能都正常
|