虽然到现在为止,CAN总线的TX口还是没有产生任何信号,但是有一些问题已经得到了解决,并且不输出信号的原因应该也是找到了,现总结如下:
1,编译问题就不说了,在前两篇有详细描述。其实还有一个告警
.\Obj\EXTI.sct(7): error: L6235E: More than one section matches selector – c
显示区溢出,开始以为是启动文件的问题,startup_stm32f10x_md.s用成了HD的,但是换成md之后,依然有这个告警,最后干脆把整个工程换成之前编译成功的工程,问题解决。之前的故障可能出在编译环境兼容性上,我新装的SDK是KEIL5.27,之前拷贝的工程文件估计是4.0甚至3.0的,还要自带函数库,太古老了。
2,端口映射问题。示例程序用的是PB8和PB9,我这块测试板子刚巧PB9被焊接了一个指示LED,结果进行程序测试的时候发现指示灯都不亮了,检查原理图发现了这个问题。然后查芯片说明,发现如果不对C8T6的48脚在不映射的情况下,CAN总线引脚是PA11和PA12,果断关掉了映射,但是TX依然没有输出。
3,今天终于查出来根本原因“1. 如果STM32 CAN TX和RX没有和CAN收发器连接的情况下,STM32的CAN TX和RX是没用数据发出的;”来源:STM32 CAN总线调试的一点心得总结
其余的问题等下周新买的CAN收发器到了测试之后再看,小小问题也很折腾啊!