4786|12

22

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

pwm ad ad采集 串口通讯 PIC16F1827 PROTEUS仿真 [复制链接]

2芯积分
串口通讯 目前遇到的问题是串口通讯接受不正常,可正常发送求大神指点看看那地方不对

附件中有源代码与仿真

ZLQ.X.zip

329.86 KB, 下载次数: 73

最新回复

问题解决了吗?兄弟  详情 回复 发表于 2016-12-14 21:55
点赞 关注
 

回复
举报

638

帖子

2

TA的资源

版主

沙发
 
建议说明下接收不正常的现象,方便大家分析
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
dingzy_2002 发表于 2016-5-21 14:30
建议说明下接收不正常的现象,方便大家分析

给单片机发送完全没反应,仿真时,没法进入接受中断里

点评

有可能是配置出了问题,否则应该是能进入中断的  详情 回复 发表于 2016-5-21 14:37
 
 
 

回复

638

帖子

2

TA的资源

版主

4
 
男哥 发表于 2016-5-21 14:34
给单片机发送完全没反应,仿真时,没法进入接受中断里

有可能是配置出了问题,否则应该是能进入中断的;
我下载下1827的资料看看再说。
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

5
 
dingzy_2002 发表于 2016-5-21 14:37
有可能是配置出了问题,否则应该是能进入中断的;
我下载下1827的资料看看再说。

谢谢
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

6
 
dingzy_2002 发表于 2016-5-21 14:37
有可能是配置出了问题,否则应该是能进入中断的;
我下载下1827的资料看看再说。

手册我看了好多遍   没搞懂相关接收相关寄存器TRISB   与 TRISB6 TRISB7有什么关系

360截图20160521144914389.jpg (100.6 KB, 下载次数: 0)

360截图20160521144914389.jpg

点评

备份引脚功能选项上,即APFCON0及APFCON1的功能寄存器上。 RX选择RB0还是RB1,TX选择RB2还是RB5,未设置(芯片复位)时,RX为RB1,TX为RB2; 目前看来,串口与RB6,RB7关系不大,手册这样说挺怪的?  详情 回复 发表于 2016-5-22 10:08
 
 
 

回复

638

帖子

2

TA的资源

版主

7
 
男哥 发表于 2016-5-21 14:49
手册我看了好多遍   没搞懂相关接收相关寄存器TRISB   与 TRISB6 TRISB7有什么关系

备份引脚功能选项上,即APFCON0及APFCON1的功能寄存器上。
RX选择RB0还是RB1,TX选择RB2还是RB5,未设置(芯片复位)时,RX为RB1,TX为RB2;
目前看来,串口与RB6,RB7关系不大,手册这样说挺怪的?
 
 
 

回复

638

帖子

2

TA的资源

版主

8
 
看了下程序,目前我看出来的有3个问题:
1.串口接收中断的标志识别与清除:if(RCIE==1 && RCIF==1),这个只要RCIF就可以了,同时可写成if(RCIF)即可;
2.串口接收中断退出还是要将RCIF置0为好(虽然读取缓冲器也可将RCIF置0,但不一定保险);否则容易出现溢出错误,你在程序中也没有作溢出判断的语句。
3.逻辑问题?:是不是要在串口接收中接收20个字节后,再处理数据?如果是则:
      if(RCREG_Cnt>19) //超过缓冲区
          RCREG_Cnt=19;
      FlagRc=1;   3. //通知单片机正在接收     
      RcCnt=0;
      RCIE=1;
这段就显得不太正常,要不要重新理解下?
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

9
 
dingzy_2002 发表于 2016-5-22 10:08
备份引脚功能选项上,即APFCON0及APFCON1的功能寄存器上。
RX选择RB0还是RB1,TX选择RB2还是RB5,未设置 ...

RX为RB1,TX为RB2 现在设置的就是这个
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

10
 
dingzy_2002 发表于 2016-5-22 10:24
看了下程序,目前我看出来的有3个问题:
1.串口接收中断的标志识别与清除:if(RCIE==1 && RCIF==1),这个 ...

按照第一点建议我也试了下,我在串口中语句中设置断点,然后进行全速运行,然后通过串口助手给单片机发送数据,程序无法运行到断点处。

点评

请问,你是用PROTEUS仿真的,还是用实物仿真的? 如果有可能,尽量用实物仿真,目前PIC用的新的单片机,可能PROTEUS仿真支持不完善; 另外,用调试器仿真,能看到RXBUF的内容,对调试会有帮助的。  详情 回复 发表于 2016-5-22 16:49
 
 
 

回复

638

帖子

2

TA的资源

版主

11
 
男哥 发表于 2016-5-22 11:35
按照第一点建议我也试了下,我在串口中语句中设置断点,然后进行全速运行,然后通过串口助手给单片机发送 ...

请问,你是用PROTEUS仿真的,还是用实物仿真的?
如果有可能,尽量用实物仿真,目前PIC用的新的单片机,可能PROTEUS仿真支持不完善;
另外,用调试器仿真,能看到RXBUF的内容,对调试会有帮助的。

点评

用的是PROTEUS仿真,因为没有仿真器,所以先用的PROTEUS,谢谢你的回答。  详情 回复 发表于 2016-5-22 17:06
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

12
 
dingzy_2002 发表于 2016-5-22 16:49
请问,你是用PROTEUS仿真的,还是用实物仿真的?
如果有可能,尽量用实物仿真,目前PIC用的新的单片机, ...

用的是PROTEUS仿真,因为没有仿真器,所以先用的PROTEUS,谢谢你的回答。
 
 
 

回复

38

帖子

0

TA的资源

一粒金砂(中级)

13
 
问题解决了吗?兄弟
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表