|
相关连接:
参与社区讨论
---------------------------------------------------------------------------- 匠人DIY旋转时钟全程实播(连载14:串口调试心得)
----------------------------------------------------------------------------
这两天写了串口接收程序,终于调试成功了!中间遇到一些小坎坷,简单讲几句心得体会。
1、由于串口与电源正端是复用一根传导线,所以,硬件方面需要合理设计电路。要确保通讯时,单片机能够正常工作。电路如下:
2、另外,因为三极管的导通/截止有时延,线上可能有干扰,导致通讯时序畸变,所以串行通讯的波特率不能设置得太高,匠人开始时用9600,无法正常实现接收,后来改用2400,才得以通过。
3、波特率的计算,有公式可循,为了一劳永逸。匠人用Excel做了个计算模版,以后只要填入参数,就可得到波特率赋值了。
4、串口的调试,是用电脑串口协助进行的,用了一个现成的调试软件。界面如下:
5、另外发现PIC单片机的串口模块有个令人不爽的地方。比如,匠人只用到串口接收,不用串口发送。但是串口发送口缺不能配置为普通IO口来用,实在有点浪费啊!以下是社区讨论摘选:
|
|
|
124楼: 请教一个问题:如果串口只用到接收,没有到发送
|
|
|
那么,是否可以把串行发送口当作普通IO口(输出口)来用? | |
systemchip 发表于 2008-1-19 21:47 PIC 单片机 ←返回版面  |
130楼: 曾经试过,不行 |
|
* - 本贴最后修改时间:2008-1-19 21:48:59 修改者:systemchip
| |
|
|
|
131楼: 那就是说白白浪费一个io口了?
|
|
|
systemchip 发表于 2008-1-19 21:47 PIC 单片机 ←返回版面
130楼: 曾经试过,不行 | |
|
|
|
136楼: 还有办法:用串口来模拟IO。
|
|
|
既然是发送端浪费,有一个比较折中的办法用它来做O口。持续发送1来模拟输出1,持续发送0来模拟输出0,不过因为有起始位和停止位,IO口需要用阻容来滤波。 | |
|