OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7949|回复: 16

串口电路 工业级实用

[复制链接]

22

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2012-6-14
在线时间
0 小时
发表于 2014-5-6 14:18:42 | 显示全部楼层 |阅读模式
5金钱
最近遇到关于PC机与串口通信问题,发现全是电路问题,@原子哥 各位大哥哥,现在工业级常用从处理器到与PC通信这一块的串口电路。如何设计最好,那个有个比较实用的电路!!

最佳答案

查看完整内容[请看2#楼]

回复【6楼】bingge191: --------------------------------- CPU+SP232/SP3232,就很好了. 不要搞那么多光耦什么鸟的.... 只要SP232/SP3232不买到假货,一般用足够你跑的了.
越是自由的环境中越要自律
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-6 14:18:43 | 显示全部楼层
回复【6楼】bingge191:
---------------------------------
CPU+SP232/SP3232,就很好了.
不要搞那么多光耦什么鸟的....
只要SP232/SP3232不买到假货,一般用足够你跑的了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

头像被屏蔽

88

主题

231

帖子

2

精华

高级会员

Rank: 4

积分
844
金钱
844
注册时间
2013-4-11
在线时间
40 小时
发表于 2014-5-6 19:55:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1815
金钱
1815
注册时间
2011-10-9
在线时间
230 小时
发表于 2014-5-6 21:29:26 | 显示全部楼层
232<----->485<---->485<---->232
回复

使用道具 举报

22

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2012-6-14
在线时间
0 小时
 楼主| 发表于 2014-5-6 21:57:38 | 显示全部楼层
回复【3楼】simms01:
---------------------------------
485好像不是很稳定列。再说这样做复杂了,成本变高了!
越是自由的环境中越要自律
回复

使用道具 举报

22

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2012-6-14
在线时间
0 小时
 楼主| 发表于 2014-5-6 21:59:44 | 显示全部楼层
回复【2楼】nonplus:
---------------------------------
这个芯片没有接触过,谢谢,这个芯片价格好像相比MAX232要高。能不能提供参考(已经使用在成品中最好)电路!!
越是自由的环境中越要自律
回复

使用道具 举报

22

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2012-6-14
在线时间
0 小时
 楼主| 发表于 2014-5-6 22:04:03 | 显示全部楼层
各位师兄师姐们,提供一个在工业中较为比较好的 串口电路:CPU到PC机这一段的模块电路。用:光耦+MAX232eese+SMB一直出现数据只能发不能收的情况!@原子哥  提供一个实用通信电路哦!!谢谢
越是自由的环境中越要自律
回复

使用道具 举报

8

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2014-4-22
在线时间
0 小时
发表于 2014-5-7 09:20:26 | 显示全部楼层
有次和同学调试板子,光耦一天坏了三次。
回复

使用道具 举报

头像被屏蔽

88

主题

231

帖子

2

精华

高级会员

Rank: 4

积分
844
金钱
844
注册时间
2013-4-11
在线时间
40 小时
发表于 2014-5-7 13:03:27 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽

88

主题

231

帖子

2

精华

高级会员

Rank: 4

积分
844
金钱
844
注册时间
2013-4-11
在线时间
40 小时
发表于 2014-5-7 13:04:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

22

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2012-6-14
在线时间
0 小时
 楼主| 发表于 2014-5-7 13:21:58 | 显示全部楼层
回复【10楼】nonplus:
---------------------------
谢谢 我先看看这个手册,我查了那个光耦和max232经常出问题,我打算下次用个6N137看看(以前用的P521直插/贴片都有)。
越是自由的环境中越要自律
回复

使用道具 举报

22

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2012-6-14
在线时间
0 小时
 楼主| 发表于 2014-5-7 13:24:16 | 显示全部楼层

这就是我们用的串口电路,大神们帮我看看如何改进!谢谢
越是自由的环境中越要自律
回复

使用道具 举报

22

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2012-6-14
在线时间
0 小时
 楼主| 发表于 2014-5-7 15:06:16 | 显示全部楼层
我看到了原来阿莫论坛中有个关于STM32串口通信将的比较全面的文章我下载下来给大家伙看看,自己正在消化!有的大神不要拍砖呵呵!
主要讲的STM32串口驱动(拼音检索测试通过)(环形队列+内存动态分配+DMA)

我消化过程中有这个几个问,那位大神看到后帮我看看!
USART.C文件中串口发送函数:
void USART1SendUpdate(void)
{
    static unsigned char count=0;
    if(USART1SendQFree==USART1_SEND_MAX_BOX){return;}
    USART1StopSendISR();
    //如果现在的内存块的数据还没有发送完毕,启动发送,Num减一
    if((USART1SendTCB[USART1SendQBoxTail].Num)&&(USART1SendQBoxTail!=USART1SendQBoxHost))
    {
        USART1SendTCB[USART1SendQBoxTail].Num--;
        USART1SendByte(*(USART1SendTCB[USART1SendQBoxTail].Index+count));
        count++;
    }
    //一个发送块已经发送完毕了 ,USART1SendQFree++,尾指针加一。指向下一个发送块
    else if(USART1SendQBoxTail!=USART1SendQBoxHost)   //疑问:这个不与上面的IF条件函数产生冲突??
    {
        OSMemDelete(OSQUSART1Index,USART1SendTCB[USART1SendQBoxTail].Index);
        if(++USART1SendQBoxTail>=USART1_SEND_MAX_BOX)
            USART1SendQBoxTail=0;
        if(++USART1SendQFree>=USART1_SEND_MAX_BOX)
            USART1SendQFree=USART1_SEND_MAX_BOX;
        count=0;
        //USART1SendQBoxTail等于USART1SendQBoxHOST的时候就标志这发送结束了,可以直接退出
        if((USART1SendQBoxTail!=USART1SendQBoxHost)) //与上面红色字体一样的疑问?
         {
            USART1SendTCB[USART1SendQBoxTail].Num--;
            USART1SendByte(*(USART1SendTCB[USART1SendQBoxTail].Index+count));
            count++;
         }
        else
        {
            //USART1SendQBoxTail等于USART1SendQBoxTail的时候就标志这发送结束了,可以直接退出
            USART1RunningFlag=0;
            USART1SendQFree=USART1_SEND_MAX_BOX;
            count=0;
         }
    }
        //由于头指针一直是指向空的发送块的,所以USART1SendQBoxTail等于USART1SendQBoxHost
        //的时候就标志这发送结束了,可以直接退出
····else
····{
·······USART1RunningFlag=0;
·······USART1SendQFree=USART1_SEND_MAX_BOX;
·······count=0;
····}
····USART1StartSendISR();
}
//懂的师兄师姐们能否帮我解答这个疑问??

STM32串口环形队列 (1).rar

1.19 MB, 下载次数: 489

越是自由的环境中越要自律
回复

使用道具 举报

10

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2013-12-3
在线时间
0 小时
发表于 2014-5-7 15:46:19 | 显示全部楼层
LS很高级的样子咧
不用谢了……
回复

使用道具 举报

22

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2012-6-14
在线时间
0 小时
 楼主| 发表于 2014-5-7 16:36:51 | 显示全部楼层
回复【14楼】eling13:
---------------------------------
我也是初学者,经常在论坛索取知识!这是阿莫论坛一个坛友写的!在学习ing
越是自由的环境中越要自律
回复

使用道具 举报

2

主题

1446

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2256
金钱
2256
注册时间
2010-12-16
在线时间
206 小时
发表于 2014-5-7 16:42:00 | 显示全部楼层
回复【12楼】bingge191:
---------------------------------
光耦接收端电路错了.
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复

使用道具 举报

22

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2012-6-14
在线时间
0 小时
 楼主| 发表于 2014-5-7 23:47:25 | 显示全部楼层
回复【16楼】shihantu:
---------------------------------
错在哪里啊???
越是自由的环境中越要自律
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-7 22:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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