|
针对TI Stellaris评估板本来计划要用很短的时间做一个CAN数据的接收器,也正如wangkj版主所说:实现起来也很简单,只需将评估板CAN总线部分及UART部分程序组合起来就可以。但是5月份本人工作前所未有的紧张,一时之间竟连这么简单的第一步工作也没做到位,在此向大家致歉!
另有好消息:这两天抽出了点时间,开始着手做CAN转UART的工作了,相信很快出来。
今天独立的CAN转UART的程序还没出炉,在这里为大家提供一点,针对LM3S8962评估板上CAN总线快速上手的小经验,很短的时间内想做一个CAN通信的小程序,去一点一点啃DATASHEET显然是不可能的,更不要说资料全是英文了(本人英文其差,看久了E文DATASHEET会头疼,不知道是不是心理作用)。
不看资料那看什么,这块板子的CAN功能是很突出的一块呢,不可能例程中没有吧,从例程的很多个“readme”中我终于找到了,“qs_ek-lm3s8962”这个工程,就是评估板开始带的游戏程序,这里面可不是只有游戏哦,它包含了这个板子的多方面功能,IO输出输入,UART,CAN总线,TCP/IP网络,这些方面是怎么使用的都可以从README中一一找出。
下面我们说一下CAN总线在此程序中的使用,主板上使用这个程序,CAN驱动板上写入“can_device_qs”,这时候,使用10针的排线将两板连接起来,就构成了一个简单的CAN网络。在游戏过程中按下主板slecet键,小板上的状态灯就会点亮,还有小板上的两个按键可以控制游戏中声音的大小,这些都是通过CAN网络传输数据来实现的。
主程序中的“CANConfigure”函数,就是设置主板CAN总线的主体函数,这个函数定义在can_net.c文件中,通过程序注释说明可以很快明白程序使用方法及过程。
CAN总线配置好了,怎样来现数据传输的?本程序中使用的中断处理程序“CANHandler”。
下面说一下,工程中的中断处理程序是怎么使用的,如图:
首先在“startup.s”中对应用程序使用的外部中断处理程序进行声明,也就是图中的上面部分:
EXTERN CANHandler
图中下半部分就是将“中断处理程序”,写入中断向量列表中的相应位置,
这样在发生中断的的时候,就会通过中断向量列表中指定的程序入口,开始执行中断处理程序了。
这样一切CAN数据处理过程就可以在中断处理程序中进行了,我在程序中加入了下面这样的输出:
这样我就把主板接收的CAN数据,通过主板的虚拟串口发送到PC机,哈哈,我监测到小板两个按键调节音量时发送数据如下:
音量减小:
10 01 00 00 00 00 09 00
11 01 00 00 00 00 09 00
音量增大:
10 00 00 00 00 00 09 00
11 00 00 00 00 00 09 00
哈哈,以后没有CAN驱动板,我也可以调节音量了,只要发送上面这两条CAN数据给主板就OK。
今天就到这里吧,在弄一会儿CAN转UART…
很弱的原创,希望能帮到需要帮助的人!
|
|