[AT32F421] 421 IO模拟can通信

[复制链接]
 楼主| ArterySW 发表于 2021-1-11 19:58 | 显示全部楼层 |阅读模式
421 IO模拟can通信

1、  测试代码:包含外部晶振16M及8M版本。
2、  连线:PA5--CAN_TX;PA4—CAN_RX。(外接3.3V电平CAN收发器)。
3、  Demo功能:
--波特率125K(目前发送可支持500K,接收仅支持125K)。
--应答错误标志:ACK_error
--同一时间只能收/只能发:用户通过判断RXing_flag(正在接收标志)和TXing_flag(正在发送标志)来确保不在同一时间收发。
--目前只支持标准帧
4、  Demo测试说明:
①    can_init(); --初始化CAN
②    can_baud --通过设置can_baud 来设置CAN波特率。
③    接收:
l  使用can_sync(); --等待CAN同步(14bit的时间),然后等待接收数据。
l  收到数据后,frame_done被置1;收到的标识符,数据长度,数据分别存在RX_arbid,RX_LEN,RX_DATA中。
l  用户将frame_done清0,并使用can_crc函数进行CRC校验,若校验通过则可以使用收到的数据。
l  注:发送时(TXing_flag==1)不可以接收,即不可以调用can_sync();
④    发送:
l  用户使用CAN_TX();来发送一帧数据;
l  标识符,数据长度,数据分别通过TX_arbid,TX_LEN,TX_DATA写入。
l  注:接收时(RXing_flag==1)不能发送数据。
5、  demo实测:每接收到一帧数据,就将接收到的数据发送出去。
11.png
接收到一帧数据:
22.png
发送一帧数据:
33.png






CAN_Normal-421-125K-外部时钟8M.rar

939.87 KB, 下载次数: 88

CAN_Normal-421-125K-外部时钟16M.rar

940.51 KB, 下载次数: 101

hameyou 发表于 2021-1-12 09:57 | 显示全部楼层
这种模拟的有没有仲裁机制啊
杨寅辉 发表于 2021-1-14 22:27 | 显示全部楼层
我觉得还是用硬件方便一点,用CAN的场合不差这么一点成本,要的就是稳定性。
单片小菜 发表于 2021-1-15 15:05 | 显示全部楼层
感觉这样做不是很稳定,为什么不直接使用CAN芯片。
muyichuan2012 发表于 2021-1-15 17:16 来自手机 | 显示全部楼层
因为421便宜
里面有晴雨 发表于 2021-1-15 17:37 | 显示全部楼层
一直不太会CAN的调试方式。有没有相关的经验。
123ycli 发表于 2021-1-17 19:48 | 显示全部楼层

意思是他和stm32的CAN系列那个不兼容吗?所以需要IO模拟?
songzhongmin 发表于 2022-6-13 17:17 | 显示全部楼层
弱弱问一句大佬,这个注释乱码怎么解决,我试遍了所有中文编码都不行
yangxiaor520 发表于 2022-6-13 18:51 来自手机 | 显示全部楼层
仲裁还是靠收发器实现?
林堪堪 发表于 2022-6-13 19:22 | 显示全部楼层
hameyou 发表于 2021-1-12 09:57
这种模拟的有没有仲裁机制啊

模拟的CAN没有加仲裁机制
林堪堪 发表于 2022-6-13 19:23 | 显示全部楼层
yangxiaor520 发表于 2022-6-13 18:51
仲裁还是靠收发器实现?

模拟的CAN没有加仲裁机制
林堪堪 发表于 2022-6-13 19:25 | 显示全部楼层
本帖最后由 林堪堪 于 2022-6-13 19:31 编辑
里面有晴雨 发表于 2021-1-15 17:37
一直不太会CAN的调试方式。有没有相关的经验。

https://bbs.21ic.com/icview-3187210-1-1.html这个帖子的附件有介绍,可以看看

林堪堪 发表于 2022-6-13 19:26 | 显示全部楼层
123ycli 发表于 2021-1-17 19:48
意思是他和stm32的CAN系列那个不兼容吗?所以需要IO模拟?

雅特力只有421这个型号没有CAN,其他型号都有的哈,需要用CAN可以选用其他型号例如AT32F403A之类。IO模拟CAN实在太占用软件资源,稳定性不好的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

198

主题

304

帖子

17

粉丝
快速回复 返回顶部 返回列表