CAN总线在WINCE中的应用
介绍:
在WIN CE下实现CAN总线的应用
CAN总线驱动器芯片: SJA1000 +
数据发送和接收说明:
1.数据发送:上层通过CreateFile()函数创建CAN设备句柄,将要发送的数据缓冲区的首地址指针作为WriteFile()函数中的pSourceBytes参数,然后使用WriteFile()函数将数据发送到CAN总线上。
2.数据接收:CAN设备句柄创建以后,当CAN控制器接收到数据,那么,将执行CAN 中断服务程序,中断服务程序将把接收到的数据写入到接收数据缓冲区中,上层应用程序在创建了设备句柄后可通过DeviceIoControl()函数的SJA_IOCTL_READ_COUNT命令参数获取缓冲区中可读出的数据个数,将该数据作为ReadFile()函数中的读取数据长度参数即可将缓冲区中的数据读出,并释放缓冲区中的相应空间。如果由于缓冲区中的数据上层应用程序没有读出而造成缓冲区空间不够,中断程序将停止向该缓冲区中写入接收到的数据,直到上层程序将数据读走使该缓冲区中有足够的空间可以写入数据。因此,在缓冲区满了以后接收的数据将会丢掉。所以为了防止数据丢失,上层应用程序应通过DeviceIoControl()函数周期性的查询缓冲区中的接收数据个数。
评一评已有 0 位网友对此文发表了看法。 我也来评一下
