新唐cortex-m0,RS485通讯(二),一个硬币的作用
2012-01-04 11:28
176 查看
最近笔者画的PCB板子回来了
,但是调试485功能的时候,出现了问题
用过485的朋友们都知道,485芯片有两个引脚是控制收发方向的,如果把新唐m0串口配置成485功能,它内部就会有RTS0来控制收发方向:如图:
上图是个实验电路,新唐M0中RTS0的方向正好和485的收发控制方向一致,即RTS0为低,485为接受功能
而笔者的PCB板子上用的是下图:
我们可以看到,它和上图RTS0完全是相反的,即RTS0是低的时候,485芯片的控制是能段是高,这时候485芯片是发送的功能,这就需要牵扯到一个修改触发电平的问题!
具体的大家可以参考手册,这里只说下如何修改程序,将UA_MCR这个寄存器的LEV_RTS置为高电平触发(默认为低电平触发),经过笔者测试,程序是可以用的,但是一开始的时候,我改了触发电平后,还是不能用,那么就开始找硬件原因。
从来没有想到,问题竟然是串口出问题,在嵌入式中,硬件的可信性不高,因为它随时可能是坏的,那怎么知道串口是否是好的,我师兄用了一个方法,那就是用了一个硬币!
将串口放平,针少的一排在上面,针多的一排在下面,面对自己,打开串口助手,选择自动发送,可能你已经猜到了什么方法,那就是自发自收,用硬币接通下面一排插针的2,3两脚(一个是发送引脚,一个是接受引脚,从右向左数),如果显示窗口不断显示出数字,就证明是好的,否则串口就是坏的,笔者拿一个坏的串口一直调试,不管如何自然出不来
硬币的导电性很好,没想到还有这作用
,但是调试485功能的时候,出现了问题
用过485的朋友们都知道,485芯片有两个引脚是控制收发方向的,如果把新唐m0串口配置成485功能,它内部就会有RTS0来控制收发方向:如图:
上图是个实验电路,新唐M0中RTS0的方向正好和485的收发控制方向一致,即RTS0为低,485为接受功能
而笔者的PCB板子上用的是下图:
我们可以看到,它和上图RTS0完全是相反的,即RTS0是低的时候,485芯片的控制是能段是高,这时候485芯片是发送的功能,这就需要牵扯到一个修改触发电平的问题!
具体的大家可以参考手册,这里只说下如何修改程序,将UA_MCR这个寄存器的LEV_RTS置为高电平触发(默认为低电平触发),经过笔者测试,程序是可以用的,但是一开始的时候,我改了触发电平后,还是不能用,那么就开始找硬件原因。
从来没有想到,问题竟然是串口出问题,在嵌入式中,硬件的可信性不高,因为它随时可能是坏的,那怎么知道串口是否是好的,我师兄用了一个方法,那就是用了一个硬币!
将串口放平,针少的一排在上面,针多的一排在下面,面对自己,打开串口助手,选择自动发送,可能你已经猜到了什么方法,那就是自发自收,用硬币接通下面一排插针的2,3两脚(一个是发送引脚,一个是接受引脚,从右向左数),如果显示窗口不断显示出数字,就证明是好的,否则串口就是坏的,笔者拿一个坏的串口一直调试,不管如何自然出不来
硬币的导电性很好,没想到还有这作用
相关文章推荐
- 新唐cortex-m0 RS485的简单通讯
- RS485通讯时,在结束到的数据中总是出现多余的一个字节0x00
- 一个C#线程间通讯的小例子
- 有道概率题:一个有趣的抛硬币问题
- 背包问题与硬币问题的一个总结
- 基于Socket写一个ssh通讯,并且完美解决粘包问题
- Tomcat里antiResourceLocking的作用和引起的一个问题
- 一个进程间同步和通讯的 C# 框架
- np.newaxis 的作用为 numpy.ndarray(多维数组)增加一个轴
- 创建一个Android程序(简单介绍工程里面各个文件的作用)
- 7 同一个activity进行通讯
- 一个支持40万并发用户的即时通讯架构介绍
- Cortex-M0/M0+屏蔽优先级低于BASEPRI设定的中断
- 当输入流和输出流同时作用一个文件
- 异或运算^的一个作用
- 一个web项目web.xml的配置中<context-param>配置作用
- 基于Kinetis的KL系列之Cortex-M0的WAV音频播放器——PCB打样(3)
- C++ 关于声明,定义,类的定义,头文件作用,防止头文件在同一个编译单元重复引用,不具名空间
- 请编写一个JavaScript 函数toRGB,它的作用是转换CSS中常用的颜色编码
- 一个简单而又灵活的IOCP模块——完成端口通讯服务器(IOCP Socket Server)设计(四)