C#在WinCE平台CAN总线编程要点详解

需积分: 50 2 下载量 99 浏览量 更新于2024-09-17 收藏 196KB PDF 举报
本文档是关于英创信息技术有限公司基于WinCE平台C#编程的系列文章之一,专注于CAN总线编程在英创ARM9系列嵌入式主板(如EM9000、EM9260)上的应用。这些主板通常配备了CAN总线接口,并且公司提供了硬件和驱动支持。作者将指导开发者如何在Windows CE环境中,利用Microsoft Visual Studio .NET 2005进行CAN总线应用程序的开发。 首先,开发者需理解如何通过Win32的CreateFile函数来获取操作CAN总线端口的句柄,这类似于传统的串口操作模式。这个函数在C#中可能不存在原生支持,因此需要借助Win32底层API,通过`DllImport("coredll.dll")`的声明方式调用。 接下来,文档介绍了英创公司提供的CAN_API_DLL动态链接库中的关键函数,例如CAN_StartChip用于启动CAN芯片,CAN_SetBaudRate设置波特率,CAN_SetGlobalAcceptanceFilter设置全局接受滤波器,CAN_GetNextReceivedFrame接收接收到的帧,以及CAN_SendFrame发送帧等。这些函数是实现CAN通信的核心组件,开发者需要熟悉并灵活运用。 在C#编程过程中,需要注意的是,许多底层操作函数,如CreateFile,可能并未直接在.NET API中提供,因此开发者需要了解并使用`CreateFile`等Win32函数来处理这类操作。同时,开发者需要引用`System.Runtime.InteropServices`命名空间,以便在C#中正确地导入和使用Win32函数。 最后,为了确保资源的高效利用,开发完成后不要忘记使用`CloseHandle`方法关闭与CAN总线相关的句柄,以释放系统资源。本文档为C#开发者提供了一个实用的指南,帮助他们有效地在WinCE平台上进行CAN总线应用程序的开发,包括硬件接入、驱动管理以及高级通信功能的实现。