微信登录
注册忘记密码
查看: 2146|回复: 6

Pic18单片机串口问题小结

[复制链接]

该用户从未签到

发表于 2022-7-2 08:58:20 | 显示全部楼层 |阅读模式
前一段时间在微芯官方购买了三块开发板,Pic18F47Q10开发板(产地:马来西亚),每一块算上运费差不多100块吧。我之所以花高价钱买这种开发板的原因是:

1、可以直接使用USB线对单片机进行烧录,不需要烧录器。

2、可以直接使用USB线调试单片机。

3、可以直接使用USB线和单片机进行串口通讯。

4、板子的质量工艺很好、沉金。(沉金的板子比普通的要贵数倍!)

大家可以看一下的外观。

1

2

问题

然后说一下在这块板子上遇到的问题,希望大家看了之后引以为鉴,以后遇到此类问题不要浪费太多时间。

问题主要有两个:

第一个是单片机不能直接通过USB线和电脑通讯(后来解决了,通过配置可以直接通讯)。

第二个是即使借助USB转串口工具也不能打印信息。

先说第一个问题吧,为什么要第三方USB转串口呢?板子上不是已经集成了烧录和串口的芯片了吗?

是集成了串口转换芯片,但是我看这个板子的数据手册发现单片机的串口输出引脚和板子上连接的不一致,板子上把串口的引脚连接在了RD0和RD1引脚。

而我这时候又去查看了单片机的数据手册,发现RD0和RD1引脚并没有串口功能,所以这时候我想这个板子应该没有串口通讯功能,于是就使用串口转USB工具对其进行串口通讯。

使用串口转USB就不涉及内部的电路构造等各种问题了,我是使用的RB6和RB7口和外部通讯,但是问题来了,在我的程序烧进去之后,串口没有任何反应,我能确信程序没什么问题,因为之前的pic单片机都是这么写的。

此时我就开始质疑是不是板子的问题,于是我就使用微芯官方的配置工具MCC生成了一段代码,用官方的代码试试这个板子能不能串口通讯,最后的结果是官方的代码可以完美运行,那首先就可以排除板子的问题了,这时候我再返回去烧我原来的程序,发现原来的程序也可以正常输出了。这时候我以为是板子不稳定呢,所以就没有去多想。

过了几天我又要用到串口了,发现这时候我原来的程序又不灵了,怎么办?

于是我又开始烧录官方的程序,发现这时候串口又正常了,再烧录我的也就正常了,但是不能断电,只要断电,我自己写的程序就不能再正常运行。

所以这时候我就可以判定问题出在了我之前的程序上面。

于是,我就开始把我写的程序和官方的代码一一做对比,最后找出了猫腻。问题是我没有指定串口使用哪一组IO口,这时候只需要把串口指定到特定的IO口,就可以正常运行了。

我用了官方的代码之后,程序会把串口指定到特定的IO口对上,恰好我用的就是官方代码指定的一组IO口,也巧了,不然会耗费我更多的时间。

所以可以看到现象了,因为没有断电,这时候内部的开关没有发生变化,所以我再烧录我的程序也就可以看到现象了。

指定IO口

这个数据手册上的引脚定义和我们之前用过的区别不大,因为平时使用的都是Pic16F的单片机,基本上都是和数据手册上标注的一一对应的,但是这个数据手册发生了变化,它的外设名字后面有的标注了(1)或者(2)这种的。

比如(1),数据手册上是这样解释的
This is a PPS remappable input signal. The input function may be moved from the default location shown to one of several other PORTx pins. Refer to the peripheral input selection table for details on which port pins may be used for this signal.
它所表达的意思是,这是一个PPS引脚,它的引脚功能可以通过软件重新定义,比如说我们的串口,既可以把TX定义到RD0,也可以把TX定义到RD1,甚至是RA0,总之可以有很多选择。而我把它默认为只可以在某一个引脚上,所以出现了以上的错误。

定义非常简单,只需要一句话

RD0PPS = 0x0B; //把发送端口映射到RD0

RX2PPS = 0x19; //把接收端口映射到RD1

我把第二组串口定义到RD0和RD1,这样就不需要借助USB转串口了,岂不美哉O(∩_∩)O哈哈~

最后可以完美的使用板子上自带的USB转串口进行打印了。

小结

这次之所以犯这样的错误是因为自己在拿到了板子之后,上去就直接写程序,并没有过多的去看数据手册。

之前的单片机都是16(8位)系列的,即使是更换芯片之后,沿用之前的套路也可以完美的运行。

但是18(8位)系列的单片机相对于16系列的改动还是比较大的,而我还是使用之前的思维去编写程序,并没有注意到18系列单片机这些新特征,所以导致了一直出错。

通过这次事件之后,让我更进一步的知道了数据手册的重要性,以后无论遇到什么新的芯片,都应该认真的去研读数据书册。


声明:以上内容来源于网络,如有侵权请联系我们(123@shiyan.com)删除!

该用户从未签到

发表于 2022-7-2 09:00:26 | 显示全部楼层
在折腾中寻找无穷的乐趣 [大笑]
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

发表于 2022-7-2 09:01:47 | 显示全部楼层
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-7-2 09:06:17 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-7-2 09:10:40 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-7-2 09:13:43 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-7-2 09:18:12 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

发表回复

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

本版积分规则