==================================================
12345678901234567890123456789012345678901234567890
==================================================
STM32F103C8T6 CAN 通讯实验
Sagahds_20181228_STM32_CAN_SLAVE_V0.1 从机
Sagahds_20181229_STM32_CAN_SLAVE_V0.2 从机
Sagahds_20181228_STM32_CAN_MASTER_V0.1 主机
Sagahds_20181229_STM32_CAN_MASTER_V0.2 主机
Sagahds_20190102_STM32_CAN_LOOPBACK_V0.1 自收发
==================================================
01.实验 更换CAN接口芯片进行测试 20190111
Fill_Sensorboard_V0.0 板子进行测试
更换之前可以作为MASTER使用
更换之后则不可用了
02.确定 最后确定毛病在于CAN接口芯片问题 20190111
买的芯片有问题
SN65HVD230买的有问题,
淘宝买的芯片似乎能收不能发
换成原来的三代产线上的芯片就没事了
可以收发了
芯片 SN65HVD230 VP230 TI 75M AP15 √
芯片 SN65HVD230 VP230 TI 71M CNVY G4 ×
==================================================
01.确认 最新实验证明,在下述环境下 20190110
STM32F103VCT6
通过串口烧录的时候也可以驱动CAN从机
怀疑 01.原来的板子中,管脚配置有问题?
02.原来的板子中,芯片型号有问题?
02.决定 新出一款硬件以测试这些问题 20190110
03.确定 下述电路板可以作为CAN_SLAVE使用 20190110
HDS0717_BASE_20180717.SCH
HDSCLCD_20181009.SCH
确定 上述电路板不能作为CAN_MASTER使用 20190110
04.确定 下述电路板可以作为CAN_SLAVE使用 20190110
核心板C8T6+CAN接口板
确定 上述电路板不能作为CAN_MASTER使用 20190110
05.确定 下述电路板可以作为CAN_SLAVE使用 20190110
核心板ZET6+CAN接口板
确定 上述电路板不能作为CAN_MASTER使用? 20190110
06.怀疑 电路板设计有问题???? 20190110
电路板硬件设计有问题????
==================================================
01.问题 找到了原因所在,在于烧录的方式不对 20181229
使用JLINK烧录没有问题
使用串口烧录会不能发送
怀疑是因为某些FLASH等没有写进去?
02.确认 使用自收自发程序测试, 20190102
JLINK/SW方式写入成功
这个写入成功是指的三块板子写入成功
STM32F103C8T6 核心板+仿真板
STM32F103ZET6 仿真板
其中 两个仿真板是自带JLNIK/SW接口的
可以直接使用JLINK电缆写入
其中 一个核心板上没有全的JLINK/SW接口
所以是使用飞线接上,然后用JLINK方式写入的
确认 STM32F103ZET6仿真板 可使用JLINK/SW方式写入
STM32F103C8T6仿真板 只可使用SW方式写入
STM32F103C8T6核心板 只可使用JLINK方式写入
上述第三种板子,因为NRST没接出来,
所以SW能通讯但是不能复位,所以写不了
上述第二种板子,它的JLINK口只能用SW方式连接
为啥JLINK方式连不了,原因不明,
估计是因为BOOT1直接被接地了
确认 上述第三种板子,JLINK硬线如下 20190102
VDD 3.3V √
GND 0V √
JNRST PB4 P40×
JTDI PA15 P38√
JTMS PA13 P34√ DIO
JTCK PA14 P37√ CLK
JTDO PB3 P39√
此时该电路板的BOOT1要拨到1,
然后按一次RESET,才可以成功使用JLINK下载
去掉 JNRST 似乎也可以下载
确认 LCD从机板子,在上述飞线之后,
可以通过SW方式辨识
03.飞线 飞线制作一块CAN板子,连接到STM主板 20190103
通过串口和JLINK下载CAN_SLAVE程序,通讯成功
通过串口和JLINK下载CAN_MASTER程序,通讯失败 04.测试 STM32F103C8T6核心板测试 20190103
串口烧写LOOPBACK程序 测试成功
测试 STM32F103C8T6仿真板测试 20190103
串口烧写LOOPBACK程序 测试成功
测试 STM32F103ZET6仿真板测试 20190103
串口烧写LOOPBACK程序 测试成功
==================================================
01.测试 STM32F103C8T6 可以做从机 20181229
02.测试 STM32F103VCT6 可以做主机 20181229
03.测试 STM32F103C8T6 做从机失败 在于 20181229
while(CAN_TransmitStatus(CAN1,MBNumber)
!=CAN_TxStatus_Ok);
//检查消息的发送 *************************
上述步骤失败
似乎是发不出去?
04.修改 修改SLAVE程序的CAN初始化函数 20181229
去掉无用的部分...
备份 Sagahds_20181228_STM32_CAN_SLAVE_V0.1
升级 Sagahds_20181229_STM32_CAN_SLAVE_V0.2
第一 去掉下述语句
//NVIC_SetVectorTable
// (NVIC_VectTab_FLASH, 0x0000);
//重新定位向量表的偏移地址
//在APP中需要指定
//偏移量为APP偏移后的地址
第二 去掉CAN_S.H下述定义
#define MOD_MAIN 0X01
#define MOD_UPDOWN 0X02
#define MOD_KEY 0X03
#define MOD_JUDGE 0X04
#define MOD_PACK 0X05
#define MOD_VEDIO 0X06
#define MOD_REMOVE 0X07
05.没用 经查询在SLAVE程序中下述函数没用到 20181229
u8 CAN_transport
(u16 extid,u8 data1,u8 data2)
所以对于SLAVE程序来说,只收不发
06.修改 修改MASTER程序的CAN初始化函数 20181229
去掉无用的部分...
备份 Sagahds_20181228_STM32_CAN_MASTER_V0.1
升级 Sagahds_20181229_STM32_CAN_MASTER_V0.2
第一 去掉下述语句
//NVIC_SetVectorTable
// (NVIC_VectTab_FLASH, 0x0000);
//重新定位向量表的偏移地址
//在APP中需要指定
//偏移量为APP偏移后的地址
第二 去掉CAN_S.H下述定义
#define MOD_MAIN 0X01
#define MOD_UPDOWN 0X02
#define MOD_KEY 0X03
#define MOD_JUDGE 0X04
#define MOD_PACK 0X05
#define MOD_VEDIO 0X06
#define MOD_REMOVE 0X07
==================================================