新手入门
- 积分
- 10
- 金钱
- 10
- 注册时间
- 2017-10-25
- 在线时间
- 10 小时
|
原子的mini板
使用了CAN1接收功能
使用了USB的读卡器功能
通过一个电子继电器切换PA11,PA12的引脚连接(连接CANH,CANL或者是USBD+,USBD-),
插入USB前,PA11,PA12连接CAN,每秒接收一次数据。
插入USB后,继电器动作,硬件连接切换到USBD+,USBD-,USB电源通过外部中断上升沿触发外部中断(中断服务函数初始化USB),使用其读卡器功能,在PC端访问SD卡
拔出USB时,通过下降沿触发另一个外部中断(中断服务调用CAN初始化函数),继续接收CAN数据。
目前遇到了一个问题,就是在拔出USB之后CAN并不能正常工作,USB初始化共有三个函数
USB_Interrupts_Config();
Set_USBClock();
USB_Init();
如果注释掉USB_Init()函数则可以做到上述的切换。所以我怀疑是这个USB_Init()函数更改了某些寄存器的某些位,影响了CAN的初始化,在论坛查了查,没发现USB_Init()函数改动了寄存器。有没有人遇到过类似的问题,请教一下。
|
|