c语言sscanf函数的用法是什么
270
2022-11-12
英创信息技术EM9170嵌入式主板CAN通讯接口使用说明
数据结构
CAN数据包结构的定义如下:
CAN滤波器数据结构的定义如下:
滤波器数据结构设置距离如下:
CAN_FILTER Filter; Filter.dwGroup = 0; // 保留,恒为0 Filter.dwType = CAN_PACKET_TYPE_STANDARD; // 标准帧 Filter.dwID = 0x00000002; // 设定的接收ID Filter.dwMask = 0x00000003; // 检查接收报文ID的低2位 Filter.dwRTR = 0; // 数据帧
设置的Filter结构,表明对于接收到的CAN标准帧报文只检查报文CAN ID的低两位的值,这两位的值应该和Filter.dwID所设定的值相符合,即:
CAN_ID & Filter.dwMask = Filter.dwID
因此在上例中,所接收的CAN报文的ID的低两位必须为0x02。
// 功能描述:启动CAN设备端口。 // 输入参数hDevice: 已创建CAN流式设备的句柄。 // 返回值= TRUE: 启动CAN设备端口成功。 // = FALSE: 启动CAN设备端口失败。 BOOL CAN_StartChip(HANDLE hDevice);
// 功能描述:停止CAN设备端口。 // 输入参数hDevice: 已创建CAN流式设备的句柄。 // 返回值= TRUE: 停止CAN设备端口成功。 // = FALSE: 停止CAN设备端口失败。 BOOL CAN_StopChip(HANDLE hDevice);
// 功能描述: 软件复位CAN设备端口。 // 输入参数hDevice: 已创建CAN流式设备的句柄。 // 返回值 = TRUE: 复位CAN设备端口成功。 // = FALSE: 复位CAN设备端口失败。 BOOL CAN_SoftReset(HANDLE hDevice);
// 功能描述:设置CAN设备通讯的波特率。 // 输入参数hDevice: 已创建CAN流式设备的句柄。 // CAN_TIMING_10K : 10Kbps // CAN_TIMING_20K : 20Kbps // CAN_TIMING_50K : 50bps // CAN_TIMING_60K : 60bps // CAN_TIMING_100K : 100bps // CAN_TIMING_125K : 125Kbps // CAN_TIMING_250K : 250Kbps // CAN_TIMING_500K : 500bps // CAN_TIMING_1000K: 1Mbps // 返回值= TRUE: 波特率设置成功。 // = FALSE: 波特率设置失败。 BOOL CAN_SetBaudRate(HANDLE hDevice, DWORD dwBaudRate );
// 功能描述: 设置CAN设备通讯接收过滤器配置。 // 输入参数hDevice: 已创建CAN流式设备的句柄。 // pFilter: 根据通讯报文格式定义过滤器的配置。 // 返回值= TRUE: 配置设置成功。 // = FALSE: 配置设置失败。 BOOL CAN_SetFilter( HANDLE hDevice, PCAN_FILTER pFilter );
// 功能描述: 清空CAN设备通讯接收、发送BUFFER。 // 输入参数hDevice: 已创建CAN流式设备的句柄。 // 返回值= TRUE: 设置成功。 BOOL CAN_Purge( HANDLE hDevice );
CAN出错处理
在CAN实际应用数据通讯过程中,可能会遇到CAN通讯出错的情况,调用API函数WaitCANEvent( HANDLE hDevice, LPDWORD lpEvtMask, DWORD dwTimeout )可以获取到CAN通讯出错的事件,对CAN的错误事件的处理可采用重启CAN设备的操作。
if( WaitCANEvent( pCAN->m_hCAN, &dwEvtMask, 2000 ) ) { ….. if( dwEvtMask & 0x02 ) // 错误事件 { CAN_StopChip( pCAN->m_hCAN ); CAN_StartChip( pCAN->m_hCAN ); } }
在英创公司提供的应用光盘中有具体CAN接口的测试代码,可供客户参考测试。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~