如何用MSComm发送16进制数
发布网友
发布时间:2023-08-05 07:42
我来回答
共2个回答
热心网友
时间:2023-08-10 07:28
MSCommSend(unsigned char * data, unsigned int len)
{
CByteArray array; //定义一个字节集
array.RemoveAll(); //清空数组
if(0 != len)
{
array.SetSize( len ); //设定数组长度
//将发送数据写入到临时数组
for(UINT i =0; i<len; i++)
{
array.SetAt(i , *data++ );
}
//调用mscomm发送数据,COleVariant类自查百度吧
m_mscomm.put_Output(COleVariant(array));
}
}>
热心网友
时间:2023-08-10 07:29
val = [170 180 val 85];
fwrite(scom, val, 'uint8', 'async'); %数据写入串口 PC机上位机发送 这是当年做智能车时的Matlab_GUI 串口上位机 自己help fwrite看下就好 我也忘了这什么意思了 这是当时一段的代码 单片机接收的就是16进制数 数值为val 中的4个数
PC机接收单片机传来数据:
n_bytes = get(obj,'BytesAvailable'); %% 数据总数量
if n_bytes %% 有效读取 防止Matlab延迟进入或误进入
Data = fread(obj, n_bytes, 'uchar')'; %% 读走数据并存入Data中 直接为十进制数值形式
希望能帮到你