【求助帖】关于CH32F103C8T6 CAN数据收发问题

项目之前用的单片机是STM32F103C8T6,想用CH32代替。时钟、定时器、串口、ADC都没有问题,就是CAN有问题。在ST的芯片上能正常收发,但是在CH32上面就没有数据发出来。请问是哪里不兼容吗,应该怎么改呢?


之前看到论坛另外一位朋友也有这个问题:

CH32F103 使用STM32cubeMX HAL库代码 CAN发送 - 沁恒微电子社区 (wch.cn)


这是我在网上找到的资料,但是我按照他的方法修改了也还是不行:

(17条消息) 沁恒 CH32F103C8 (套用STM32 HAL库)CAN总线初始化注意事项_念隐的博客-CSDN博客

我用官方demo直接就跑不通,你跑通了吗?


你的也是CAN跑不通吗,我还没试过官方的demo,时间比较急


顶一顶自己,麻烦技术人员看到回复一下


您好,@20220510,正常CAN数据收发是没有问题的,你的CAN程序是用了哪两个引脚,若方便,可将程序发到我的邮箱(lzs@wch.cn),我这边测试一下。

@zhf,官方例程我们都是测试过的,没有问题的,注意例程中用的是CAN复用引脚(PB8、PB9),附件链接为CH32F103 EVT下载链接,你可以下载EVT用里面CAN例程测试一下,后面若有问题,可以通过邮箱跟我联系。

/downloads/CH32F103EVT_ZIP.html

 



不知道什么原因,我这边一直没跑通


@TECH62 image.png用的是PA11 PA12引脚


@TECH62

 程序已发至您的邮箱,请注意查收


我用的官方范例PB8和PB9引脚,用的\EVT\EXAM\CAN\Networking     PB8和PB9没有波形     我GPIO方式驱动PB8PB9是可以的      始终没有调通


我把范例的PB8和PB9改为PA11和PA12,引脚也没有波形


您好,@zhf,关于你的问题,首先可以确认例程是没有问题的,我这边测试都跑的通,PB8、9引脚也都是有波形输出的,如下图,此处我使用的例程为CAN第一个例程,正常模式收发例程。若你那边下载之后没有波形输出,建议你检查一下芯片或者电路是否存在问题,可更换芯片试一下,或者可以联系销售申请F103 Demo板,拿我们Demo板测试对比一下。附件为我的测试例程,你也可以试一下。

icon_rar.gifCH32F103 CAN.zip

image.png

image.png


你那个图片演示不是那个范例的吧?networking   testmode  还是Time-triggered?     为啥可以用串口助手控制进行收发

txbuf不是程序里写死了么?


您好,测试所用例程是Networking例程,此处串口助手也不是用来控制收发的,用来打印显示要发送和接收的数据的,如下图。

image.png


我好像单步调试老是进入Send failed这步,我是daplink调试,然后usbcan上位机查看,但我用stm32的can例程跑通了。

是不是这个例程适合2个板子收发这样子


您好,是的,这个例程需要两个板子进行收发


只有登录才能回复,可以选择微信账号登录