PIC16F886,进不了串口接收中断。求教。程序没几行【已解决

[复制链接]
 楼主| 小白变大白 发表于 2013-9-10 22:41 | 显示全部楼层 |阅读模式
本帖最后由 小白变大白 于 2013-9-11 11:28 编辑

是232转485的。485有个发送接收使能端,还是以是485的使能端了。谢谢各位
  1. #include <htc.h>
  2. //#include <pic.h>
  3. //#define _XTAL_FREQ 10000000 //4Mhz FRC internal osc
  4. //__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_OFF & MCLRE_ON & CP_OFF & CPD_OFF & BOREN_ON & IESO_ON & FCMEN_ON & LVP_OFF);
  5. //__CONFIG(BOR4V_BOR40V & WRT_OFF);
  6.   __CONFIG(0x28e2);    //外部时钟10M
  7. __CONFIG(0x3eff);
  8. void serial_init();
  9.   
  10. char data = 0;
  11. void serial_init()
  12. {
  13.          TRISB4=0;        /* 使能485*/
  14.         RB4 = 1;

  15.         SPBRG = 64;    /*波特率 */
  16.         SPEN = 1;     /*使能EUART,自动配置RX为输入*/
  17.         RCIE = 1;
  18.         GIE = 1;
  19.         PEIE = 1;     
  20.         CREN = 1;     /*使能接收电路*/
  21.         SYNC = 0;     /*异步操作*/
  22.         
  23. }

  24. void interrupt ISR(void)
  25. {
  26.         if(1 == PIR1bits.RCIF)       /*----- rec interrupt ---*/
  27.         {
  28.                 data = RCREG;
  29.         }
  30. }
  31. int main()
  32. {
  33.          serial_init();
  34. /*---------TEST LED-----------*/
  35.          TRISCbits.TRISC0 = 0;
  36.          PORTCbits.RC0 = 0;

  37.          while(1)
  38.          {
  39.                  if(data == 0x55)
  40.                         PORTCbits.RC0 = 1;
  41.         }  
  42.           return 0;
  43. }
opal11 发表于 2013-9-10 22:47 | 显示全部楼层
#include <htc.h>  ??
 楼主| 小白变大白 发表于 2013-9-10 22:50 | 显示全部楼层
opal11 发表于 2013-9-10 22:47
#include   ??

大哥,这没问题吧。datasheet看好几遍了,还是不行。呜~~~~(>_<)~~~~
NE5532 发表于 2013-9-11 08:42 | 显示全部楼层
串口发送调通了没??
yewuyi 发表于 2013-9-11 08:59 | 显示全部楼层
PIR1bits.RCIF:结合接受中断容许位一起判断。

你这接受中断也太潦草了吧?

为什么不是:#include <pic.h> ?

IO方向设置正确吗?

中断初始化正确吗?
lidongshuo 发表于 2013-9-11 09:37 | 显示全部楼层
RB4 = 1;好像一直在发送,收不到数吧。 RB4 =0试试
yklstudent 发表于 2013-9-11 09:57 | 显示全部楼层
感觉写程序不适合楼主 还是玩硬件去好了
NE5532 发表于 2013-9-11 11:24 | 显示全部楼层
yklstudent 发表于 2013-9-11 09:57
感觉写程序不适合楼主 还是玩硬件去好了

呵呵,楼主这个就是硬件啊
 楼主| 小白变大白 发表于 2013-9-11 11:29 | 显示全部楼层
本帖最后由 小白变大白 于 2013-9-11 12:25 编辑
yklstudent 发表于 2013-9-11 09:57
感觉写程序不适合楼主 还是玩硬件去好了

晕,你这也太打击人了,这是个测试程序而已。
几百行的程序能删的我尽量都删了。
==================================================
没看出lz这里的程序哪里高明,不然你也得说出问题我的所在吧
https://bbs.21ic.com/forum.php?mo ... p;page=1#pid3422032
 楼主| 小白变大白 发表于 2013-9-11 11:31 | 显示全部楼层
本帖最后由 小白变大白 于 2013-9-11 11:35 编辑
yewuyi 发表于 2013-9-11 08:59
PIR1bits.RCIF:结合接受中断容许位一起判断。

你这接受中断也太潦草了吧?

潦草是很潦草,但不至于不对吧。
RCIF是只读的。
IO不需要设置。
初始化正确。
编译器提示 htc.h
lx说对了。不过还是非常谢谢
 楼主| 小白变大白 发表于 2013-9-11 11:52 | 显示全部楼层
lidongshuo 发表于 2013-9-11 09:37
RB4 = 1;好像一直在发送,收不到数吧。 RB4 =0试试

找半天没找到结贴的地方。
yewuyi 发表于 2013-9-11 12:21 | 显示全部楼层
小白变大白 发表于 2013-9-11 11:52
找半天没找到结贴的地方。

首贴旁边,点我要结贴,然后给各个跟帖打分,打分总额必须和悬赏分一致,然后再点结贴给分。
 楼主| 小白变大白 发表于 2013-9-11 12:27 | 显示全部楼层
这情何以堪。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
yklstudent 发表于 2013-9-11 12:41 | 显示全部楼层
本帖最后由 yklstudent 于 2013-9-11 12:42 编辑
小白变大白 发表于 2013-9-11 11:29
晕,你这也太打击人了,这是个测试程序而已。
几百行的程序能删的我尽量都删了。
======================= ...


呵呵 。。。。。。。。。。
 楼主| 小白变大白 发表于 2013-9-18 13:30 | 显示全部楼层
yklstudent 发表于 2013-9-11 12:41
呵呵 。。。。。。。。。。

呵呵什么呀,阴阳怪气的
yklstudent 发表于 2013-9-18 20:55 | 显示全部楼层
小白变大白 发表于 2013-9-18 13:30
呵呵什么呀,阴阳怪气的

靠 我就喜欢呵呵 怎么呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

11

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部