天嵌 ARM开发社区

 找回密码
 注册
查看: 3735|回复: 7

UART如何在应用调用底层的驱动里封装的函数?

[复制链接]
ztt725 发表于 2013-3-21 10:30:03 | 显示全部楼层 |阅读模式
本帖最后由 ztt725 于 2013-3-21 21:01 编辑

UART如何在应用调用底层的驱动里封装的函数?
了解了一下UART的功能,有很多寄存器之类的,也明白怎么工作了,看TQ2440的BSP包,有串口的驱动

[打开头文件看到里面封装了很多函数

之前在应用调用的都是DeviceIOControl函数,可是这里面也没有对应的函数体,我要怎么在应用使用这些函数呢?比如我想设置波特率为96200,该怎么写呢,在应用里?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
TQ-ZQL 发表于 2013-3-21 11:24:00 | 显示全部楼层
如果只是配置一些常用的项如波特率 ,停止位,之类的,直接像一般的标准串口操作就可以了,
 楼主| ztt725 发表于 2013-3-21 18:04:20 | 显示全部楼层
TQ-ZQL 发表于 2013-3-21 11:24
如果只是配置一些常用的项如波特率 ,停止位,之类的,直接像一般的标准串口操作就可以了,

是是是,一看你就是高手,目前我只会用串口调试小助手来发送数据,很想知道具体的代码是什么啊!你知道吗?
TQ-ZQL 发表于 2013-3-21 18:16:46 | 显示全部楼层
 楼主| ztt725 发表于 2013-3-21 20:44:12 | 显示全部楼层
本帖最后由 ztt725 于 2013-3-21 20:45 编辑
TQ-ZQL 发表于 2013-3-21 18:16
http://wenku.baidu.com/view/f4e10a48f7ec4afe04a1df2f.html
网上很多的这些


        hFile=CreateFile(L"COM3:", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0);
        if (hFile == INVALID_HANDLE_VALUE)
        {
                MessageBox(_T("打开设备失败!"));
        }
        
        const int BUFSIZE = 4096;
       char chBuffer[BUFSIZE];         
         memcpy(chBuffer," jkjhfuhfjh ",100);
        DWORD dwWritenSize = 0;
       BOOL bRet = ::WriteFile(hFile,chBuffer,4,&dwWritenSize,NULL);
        if (!bRet)
         {
              //
              OutputDebugString(_T("WriteFile 写文件成功\r\n"));
        }

          LONG lDistance = 0;
        DWORD dwPtr = SetFilePointer(hFile, lDistance, NULL, FILE_BEGIN);
       if (dwPtr == INVALID_SET_FILE_POINTER)
       {
              //获取出错码。
              DWORD dwError = GetLastError() ;
              //处理出错。            
         }

        DWORD dwReadSize = 0;
                char chBuffer1[BUFSIZE];
       bRet = ::ReadFile(hFile,chBuffer1,4,&dwReadSize,NULL);
         if (bRet)
        {
              //
              OutputDebugString(_T("ReadFile 读文件成功\r\n"));
        }
                  else
         {
               //获取出错码。
              DWORD dwError = GetLastError();
               //处理出错。            
              TCHAR chErrorBuf[1024];
               wsprintf(chErrorBuf,_T("GetLastError()=%d\r\n"),dwError);
              OutputDebugString(chErrorBuf);
         }

                  //MessageBox(chBuffer);
               
                 strMsg.Format(L"%s",chBuffer1);
                 UpdateData(FALSE);

//我试了下这段代码,短接了RXD2和TXD2,想输入同时输出jkjhfuhfjh,可是输出的是乱码,你能帮我看看吗?
 楼主| ztt725 发表于 2013-3-21 21:00:56 | 显示全部楼层
TQ-ZQL 发表于 2013-3-21 18:16
http://wenku.baidu.com/view/f4e10a48f7ec4afe04a1df2f.html
网上很多的这些

原来光盘里有源码,那我就研究研究源码就行了,谢谢你啦
2256493169 发表于 2013-3-25 12:00:20 | 显示全部楼层
顶一个!
w492901074 发表于 2013-3-31 13:40:09 | 显示全部楼层
标记下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-19 04:30 , Processed in 1.031257 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表