网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> 技术文库 >> 嵌入式 >> 文章正文
  串口可以实现 SPI Master           ★★★ 【字体:
串口可以实现 SPI Master
作者:61IC录入    文章来源:本站原创    点击数:    更新时间:2006-4-7    

用 Windows 的 EscapeCommFunction 函数可以直接控制串口的 TXD,DTR 和 RTS 的输出电平,关键是控制好时序。下面的函数实现收发一个 byte。

BYTE Transceiver(HANDLE hComm, BYTE c)
{
    bool b = true;
    BYTE r = 0;
    int i;
    i = 8;
    do {
        if ((c & 0x80) && b == false) {
            SetMOSI(hComm, 1);
            b = true;
        } else if (!(c & 0x80) && b == true) {
            SetMOSI(hComm, 0);
            b = false;
        }
        c <<= 1;
        SetSCK(hComm, 1);
        bool bStatus = GetMISO(hComm);
        r <<= 1;
        r |= bStatus ? 1 : 0;
        SetSCK(hComm, 0);
    } while (--i);
    if (!b)
        SetMOSI(hComm, 1);
    return r;
}

其中的SetSCK, SetMOSI 需要用 EscapeCommFunction 函数来实现,例如:

void SetSCK(HANDLE hComm, bool bLevel)
{
    EscapeCommFunction (hComm, bLevel ? SETDTR : CLRDTR);
}

而 GetMISO 需要用 GetCommModemStatus 函数实现,看看 MSDN 上关于这些函数的说明。

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号