我无法在我的项目中实现扩展的十六进制值。当我&H000007F0在我的 Visual Basic 项目中键入内容时,Visual Studio 会将其缩短为&H7F0. 在正常情况下,这很好,但我需要将前面的 0 作为参数包含在 API 上的函数中。
我尝试将它创建为字符串Dim MastID As String = "000007F0",然后转换为 hex Convert.ToUInt32(MastID, 16),但这并没有像我想象的那样工作。有没有我可以尝试的其他方法或我可以关闭/打开的 VS17 设置来让我拥有完整的&H000007F0?
我这样做是为了尝试连接到 CAN 总线上的从设备。我正在使用具有自己功能的 API 来控制 CAN 设备并初始化 CAN 通道。如果我能够传递扩展 ID &H000007F0,那么 API 将使用这些参数初始化 CAN 通道。
为从数据设置的参数:
SlaveData.BroadcastID = &H18DAA1E1
SlaveData.MasterID = &H7F0
SlaveData.SlaveID = &H7F2
SlaveData.IncrementalIdUsed = False
正在使用的功能:
Public Shared Function Connect(
ByVal Handle As UInt32,
ByVal Mode As Byte,
) As Result ' Returns no errors
End Function
分析 CAN BUS,使用的设备 ID 是 7F0h,因此从设备没有响应确认消息。但是,当我使用扩展主 ID 发送相同的函数并制作自己的字节数组时,它确实有效。