打印

哪位大侠用过PIC16f1526的单片机,求指导

[复制链接]
1126|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
21_rain|  楼主 | 2015-3-9 22:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

void interrupt COMM_INT_ISR(void)
{
        char temp;
        if(RC2IF&&RC2IE)
        {
                 if(FERR)
                {
                        gErr = RC2REG;
                }
                if(OERR)
                {
                        CREN = 0;
                        CREN = 1;
                }
                gBuffer[gIndex] = RC2REG;
                gIndex++;
        }
}

/*SERIAL COMM*/
void async_init(void)
{
        TRISG1 = 1;       
        TRISG2 = 1;        //配置RG IO口为输入
        ANSELG = 0;
        TX2STA = 0b00100100;        //传输禁止,高速
        RC2STA = 0b10010000;        //开启串口,连续接受字符
        BAUD2CON = 0b00000000;//
        TX2IE = 0;
        SPBRG = 19;  //高速传输,波特率(119为9600) (19为57600)
}

void rc_data(char len)
{
        char tIndex;
        async_init();       
        gIndex = 0;
        gErr = 0;
        GIE = 1;
        PEIE = 1;
        RC2IE = 1;
        while(gIndex < len);

        RC2IE = 0;
}

void tx_data(u8 packet[], char len)
{
        char i;
        async_init();
        TXEN = 1;
        for(i=0;i<len;i++)
        {
                SEND_ONE(packet[i]);       
                delay_ms(10);       
        }       
}



整了好久,对着手册眼睛都看肿,没发现问题,真丧失!请大伙帮我看看,为什么我的串口中断读取的时候,可以进入,也没有错误,就是没有存入gBuffer里面?
沙发
yklstudent| | 2015-3-9 23:06 | 只看该作者
好奇葩的写法,不知道从那边学的

使用特权

评论回复
板凳
yklstudent| | 2015-3-9 23:08 | 只看该作者
MPLAB X + XC8开发平台下,带有代码生成插件;
可以生成你要的USART串口代码,想必也比你写的强多了

使用特权

评论回复
地板
21_rain|  楼主 | 2015-3-10 00:06 | 只看该作者
yklstudent 发表于 2015-3-9 23:06
好奇葩的写法,不知道从那边学的

自学的,初学者,代码自然幼稚,兄台有没有比较好的学习代码与心得,分享一二?

使用特权

评论回复
5
21_rain|  楼主 | 2015-3-10 00:13 | 只看该作者
yklstudent 发表于 2015-3-9 23:08
MPLAB X + XC8开发平台下,带有代码生成插件;
可以生成你要的USART串口代码,想必也比你写的强多了 ...

谢谢你给我提供一个这个方法,我先试试

使用特权

评论回复
6
21_rain|  楼主 | 2015-3-10 09:16 | 只看该作者
yklstudent 发表于 2015-3-9 23:08
MPLAB X + XC8开发平台下,带有代码生成插件;
可以生成你要的USART串口代码,想必也比你写的强多了 ...

实在感谢,昨晚奋战到很晚,代码生成器拓展的东西的确很多,结构性很好,经过对照修改,发现是我初始设置出了问题,感谢感谢……

使用特权

评论回复
7
yklstudent| | 2015-3-10 10:38 | 只看该作者
21_rain 发表于 2015-3-10 09:16
实在感谢,昨晚奋战到很晚,代码生成器拓展的东西的确很多,结构性很好,经过对照修改,发现是我初始设置 ...

No Problem!

使用特权

评论回复
8
21_rain|  楼主 | 2015-3-10 18:57 | 只看该作者

兄弟,请教你一个东西,我今天调试在PC与基板通信,接受发送没有问题,但是我因为想玩一下双单片机通信(另一个是ARM9),可是一样的程序PIC 串口的中断接受数据时只接受前两位,其他均没有写入,就像PIC FIFO里面不再进入字符了一样……
你能帮我分析一下,哪些原因可以造成这点?

使用特权

评论回复
9
yklstudent| | 2015-3-10 19:11 | 只看该作者
本帖最后由 yklstudent 于 2015-3-10 19:23 编辑
21_rain 发表于 2015-3-10 18:57
兄弟,请教你一个东西,我今天调试在PC与基板通信,接受发送没有问题,但是我因为想玩一下双单片机通信( ...

1、自己仔细看资料;
2、PIC串口接收到数据,你要及时读取数据,否则FIFO满了溢出就有问题了;
3、检测自己的代码

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

18

帖子

0

粉丝