打印

串口取电问题

[复制链接]
3970|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
blx13579|  楼主 | 2007-11-7 08:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
dadodo| | 2007-11-7 10:57 | 只看该作者

re:串口取电问题

串口4、7脚可以通过PC程序控制输出得到+10V左右电压。

使用特权

评论回复
板凳
hotpower| | 2007-11-7 11:02 | 只看该作者

同意楼上~~~DTR,RTS默认输出-10V

int CVICALLBACK DTR_CHECKBOX (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    int val;
    int openmode;
    switch (event)
    {
        case EVENT_COMMIT:
            GetCtrlVal (panelHandle, PANEL_COMMCTRLSEL, &openmode); 
            if (CommPort) {
              GetCtrlVal (panelHandle, PANEL_CHECKBOX_1, &val);
              if (val == 0) 
              {
                  if (openmode == 0)
                  {
                      ComSetEscape (CommPort, CLRDTR);
                  }
                  else
                  {
                    HotComm_SetEscape (CommPort, CLRDTR);  
                    SetCtrlVal (panelHandle, PANEL_RILED, HotComm_GetRINGPin (CommPort));
                  }
              }
              else 
              {
                  if (openmode == 0)
                  {
                      ComSetEscape (CommPort, SETDTR);
                  }
                  else
                  {
                    HotComm_SetEscape (CommPort, SETDTR);  
                    SetCtrlVal (panelHandle, PANEL_RILED, HotComm_GetRINGPin (CommPort));
                  }
              }
              SetCtrlVal (panelHandle, PANEL_DTRLED, val);
              SetCtrlVal (panelHandle, PANEL_COMMERROR, "");
            }
            else {
              SetCtrlVal (panelHandle, PANEL_DTRLED, 0);
              SetCtrlVal (panelHandle, PANEL_CHECKBOX_1, 0);
            }
            break;
    }
    return 0;
}

int CVICALLBACK RTS_CHECKBOX (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    int val;
    int openmode;
    switch (event)
    {
        case EVENT_COMMIT:
            GetCtrlVal (panelHandle, PANEL_COMMCTRLSEL, &openmode); 
            if (CommPort) {
              GetCtrlVal (panelHandle, PANEL_CHECKBOX_2, &val);
              if (val == 0)
              {
                  if (openmode == 0)
                  {
                      ComSetEscape (CommPort, CLRRTS);
                  }
                  else
                  {
                    HotComm_SetEscape (CommPort, CLRRTS);
                  }
              }
              else
              {
                  if (openmode == 0)
                  {
                      ComSetEscape (CommPort, SETRTS);
                  }
                  else
                  {
                    HotComm_SetEscape (CommPort, SETRTS);
                  }
              }
              SetCtrlVal (panelHandle, PANEL_RTSLED, val);
            }
            else {
              SetCtrlVal (panelHandle, PANEL_RTSLED, 0);
              SetCtrlVal (panelHandle, PANEL_CHECKBOX_2, 0);
            }
            break;
    }
    return 0;
}

使用特权

评论回复
地板
blx13579|  楼主 | 2007-11-7 11:54 | 只看该作者

多谢,各位

串口调试软件里,控制rts和dtr..就有了电压+10V了...

使用特权

评论回复
5
awey| | 2007-11-7 15:43 | 只看该作者

标准的是15V的

使用特权

评论回复
6
hotpower| | 2007-11-7 17:51 | 只看该作者

实际为+-10V左右,标准的是15V~~~

使用特权

评论回复
7
michael_li| | 2007-11-7 18:41 | 只看该作者

经典的串口取电电路

使用特权

评论回复
8
mohanwei| | 2007-11-7 20:29 | 只看该作者

如果加上电荷泵,就不用软件设置了

使用特权

评论回复
9
古道热肠| | 2007-11-8 11:00 | 只看该作者

标准是12V吧

电脑中的电源只有+-12V给RS232供电的。

使用特权

评论回复
10
xwj| | 2007-11-8 11:09 | 只看该作者

呵呵,电路是要和软件配套的;-)

在PC上用软件把DTR,RTS设为逻辑0,就能输出正电压了,
不过串口IO输出的电流比较小,只适合一些小工具、小电路使用

要电流大的话就从USB取电,每个端口可以提供500mA的电流哦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

69

帖子

0

粉丝