基于STM32F103C8t的CAN通讯实例(带程序注释)

2019-12-09 20:00发布

这个实例的板子和程序均为个人兴趣所做,测试已经通过,但是难免有所问题,如有错误和能够完善的地方,希望和大家相互学习。
整体构思:这套小板是为了通过I/O口低电压系统(3.3V)隔离驱动高电压系统(24V),实现MCU对24V电压输出的有无控制,低电压系统对高电压系统的隔离驱动控制是通过光耦来实现的,MCU的I/O输出0V时,光耦导通,对应接口输出24V。
(实际测试时已经通过硬件结构使每个I/O口对应一个小灯,MCU的I/O输出0V时,对应接口输出24V,小灯点亮;MCU的I/O输出3.3V时,对应接口输出0V,小灯熄灭)。
2.PNG (6.31 KB, 下载次数: 17) 下载附件 2013-11-27 13:57 上传
3. 关于接收数据的处理。因为在can中断中收到的数据是存在8个数组中的RxMessage.Data所以如何把他们提取出来,我采用的方法是定义了一个int aa[8],然后依次用移位与1与的方法,把数组中的数据1位位提取出来。如a[0]= RxMessage.Data[0]&1;a[1]= (RxMessage.Data[0]>>1)&1;依次类推,即可把一个字节中的数据内容都提取出来,依此方法循环,再把其余7个字节中的数据进行提取,进行下一步的处理。
4.在发送小板发送数据时,把CAN的数据进行传递进去的时候定义了一个指针,把数组的首地址传入进去,这样觉得比较方便。
附件中带了主板的原理图和发送小板的程序以及接收小板的程序,加带了注释,可供新手进行学习参考(—_-||)接收小板的程序上传不了了,说我今日无法上传那么大的附件,以后传上来吧
stm32气缸板.pdf (273.92 KB, 下载次数: 470) 2013-11-27 14:18 上传 点击文件名下载附件




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
47条回答
fraser
1楼-- · 2019-12-13 09:23
谢谢楼主!
largolun
2楼-- · 2019-12-13 12:19
 精彩回答 2  元偷偷看……
托马斯小火车
3楼-- · 2019-12-13 15:50
largolun 发表于 2014-11-19 09:44
附件沒有原理圖呢?

有的,在下面的楼里
wangyy@dianzi
4楼-- · 2019-12-13 21:27
收藏,谢谢LZ
52HLX
5楼-- · 2019-12-13 23:45
mark ,程序很有用,赞一个
开始
6楼-- · 2019-12-14 01:44
支持 !!!

一周热门 更多>