将WAV文件通过串口发送的问题。急!!!! 用vc6.0编写一个程序将一个WAV文件分块(块的大小是128个字节)通过串口发送到一个前端设备里的FLASH ROM里。FLASH ROM按每块128个字节进行划分。另外一个程序正好和这个程序相反。希望各位大虾能告诉我。要原代码。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不会写API用MSCOMM控件好了,以二进制流的方式读出WAV,然后发送到前端http://www.csdn.net/develop/Read_Article.asp?Id=11045 我也想用控件。但是,总工程师不同意。要我必须用API。其实,我读是没问题了。可是要把它存下来就出问题了。找了很多地方都找不到相关文章 试过了,不行。我用的是fread和fwrite进行文件的读和写的设的是二进制的读和写操作。缓冲区是char类型的。不过,这样,存的时候就出问题了,存的内容不对。 是用readComm和writeComm进行读写串口操作,异步操作函数如下:// 从串行口输入缓冲区中读入指定数量的字符DWORD CTerminalDoc::ReadComm(char *buf,DWORD dwLength){ DWORD length=0; COMSTAT ComStat; DWORD dwErrorFlags; ClearCommError(m_hCom,&dwErrorFlags,&ComStat); length=min(dwLength, ComStat.cbInQue); ReadFile(m_hCom,buf,length,&length,&m_osRead); return length; }// 将指定数量的字符从串行口输出DWORD CTerminalDoc::WriteComm(char *buf,DWORD dwLength){ BOOL fState; DWORD length=dwLength; COMSTAT ComStat; DWORD dwErrorFlags; ClearCommError(m_hCom,&dwErrorFlags,&ComStat); fState=WriteFile(m_hCom,buf,length,&length,&m_osWrite); if(!fState){ if(GetLastError()==ERROR_IO_PENDING) { GetOverlappedResult(m_hCom,&m_osWrite,&length,TRUE);// 等待 } else length=0; } return length; } 显式链接c++编写的DLL,引用dll中的函数引发的错误GetProcAddress error! 求助~~关于Edit控件(MFC) 关于大规模服务器程序的设计 进度条控件的使用? 关于GetHttpConnection()的问题?在线等待 如何在ATL对话筐中加入控件 并控制? 谁知道stat(const char *, struct stat *)这个函数的作用? 选择什么语言? 使用CArchive如何得知到了文件末尾? 有关keybd_event的一个问题 从画菜单的问题(drawitem) 请问各位写串口时,出现#183错误,是什么原因?
http://www.csdn.net/develop/Read_Article.asp?Id=11045
可是要把它存下来就出问题了。找了很多地方都找不到相关文章
我用的是fread和fwrite进行文件的读和写的设的是二进制的读和写操作。缓冲区是char类型的。不过,这样,存的时候就出问题了,存的内容不对。
// 从串行口输入缓冲区中读入指定数量的字符
DWORD CTerminalDoc::ReadComm(char *buf,DWORD dwLength)
{
DWORD length=0;
COMSTAT ComStat;
DWORD dwErrorFlags;
ClearCommError(m_hCom,&dwErrorFlags,&ComStat);
length=min(dwLength, ComStat.cbInQue);
ReadFile(m_hCom,buf,length,&length,&m_osRead);
return length;
}// 将指定数量的字符从串行口输出DWORD CTerminalDoc::WriteComm(char *buf,DWORD dwLength){
BOOL fState;
DWORD length=dwLength;
COMSTAT ComStat;
DWORD dwErrorFlags;
ClearCommError(m_hCom,&dwErrorFlags,&ComStat);
fState=WriteFile(m_hCom,buf,length,&length,&m_osWrite);
if(!fState){
if(GetLastError()==ERROR_IO_PENDING)
{
GetOverlappedResult(m_hCom,&m_osWrite,&length,TRUE);// 等待
}
else
length=0;
}
return length;
}