99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

關(guān)于PIC16F877A的USART通信(C語言)問題;

先說明一下情況:
1、 系統(tǒng)為PC機(jī)232-下位機(jī)485,PC使用232-485轉(zhuǎn)接口一對多;
2、 下位機(jī)晶振20M;
3、 通信協(xié)議借用MODBUS;
4、 PC間隔100MS查詢或操作一個下位機(jī),用串口工具實測20MSm內(nèi)查詢一個下位機(jī)并返回26個數(shù),系統(tǒng)不會出錯;
5、 下位機(jī)一次返回26個數(shù),或進(jìn)行相關(guān)控制;
6、 主循環(huán)中加入了接收設(shè)置,也就是說只要在工作,沒循環(huán)一圈就將USART設(shè)置為接收狀態(tài);
7、 下位機(jī)返回或修改數(shù)據(jù)是接收中斷內(nèi)完成的,接收中斷在返回數(shù)據(jù)結(jié)束后修改USART為接收狀態(tài);
8、 看門狗開;
問題是:
通信正常,但PC連續(xù)多次控制下位機(jī)修改操作時,有可能通信中斷,一但中斷再也建立不起通信,沒搞明白?
百思不得其解的是,我主循環(huán)中加入了接收設(shè)置,也就是初始化串口;看門狗復(fù)位都不能通信,并沒有死機(jī)呀.
求教分析分析!
全部回復(fù)(3)
正序查看
倒序查看
xing1234
LV.6
2
2007-11-21 10:14
我的通信設(shè)置:
//工作頻率20M

#include
#include

#define  PORTBIT(add,bit) ((unsigned)(&add)*8+(bit))

#define    RE_TRIS     TRISC4
#define    DE_TRIS     TRISC5
static  bit          RE   @  PORTBIT(PORTC,5);
static  bit          DE   @  PORTBIT(PORTC,4);

/*****************函數(shù)申明區(qū)********************/
void com_usart_se_out8(void);
void com_usart_out8(unsigned char );
void com_usart_se_in8(void);

/***********************異步通信*********/
void com_usart_se_out8(void)
{
  PORTC |=0xE0;
  TRISC7= 1;       //0
  TRISC6= 0;       //1
  RE_TRIS= 0;       //0   RE_DE
  DE_TRIS= 0;
  RE = 1;
  DE = 1;
//  SPBRG = 19;     //19   波特率設(shè)baud rate=20M/16(19+1)=62500
  SPBRG = 64;       //64   19200  20M
  BRGH  = 1;      //高速傳送模式
  SYNC  = 0;       //選取異步模式
  SPEN  = 1;       //發(fā)送開端口      //0
  CSRC  = 1;       //選內(nèi)部時鐘
  TX9   = 0;
  RCSTA=0x80;
  RCIE  = 0;      //接收中斷使能
  PEIE = 0;        // 禁止發(fā)送中斷
  SPEN  = 1;       //發(fā)送開端口
}
void com_usart_out8(unsigned char data_8)
{
  TXREG =  data_8;
  TXEN  = 1;       //發(fā)送使能
  while(!TRMT);
  TXIF  = 0;
  TXEN  = 0;       //發(fā)送使能結(jié)束
}
/***********************異步通信*********/
void com_usart_se_in8(void)
{
  TRISC7= 1;       //0
  TRISC6= 0;       //1
  RE_TRIS = 0;
  DE_TRIS = 0;
  RE = 0;
  DE = 0;
  SPBRG = 64;       //64   19200
  BRGH  = 1;      //高速傳送模式
  SYNC  = 0;       //選取異步模式
  RCIF = 0;        //中斷標(biāo)志位清零
  SPEN  = 1;       //發(fā)送開端口      //0
  RX9   = 0;
  CSRC  = 1;       //選內(nèi)部時鐘
  CREN  = 1;       //0禁止連續(xù)接收
  ADDEN = 0;      //
  TXIE=0;         // 0禁止發(fā)送中斷
  RCIE  = 1;      //接收中斷使能
  PEIE = 1;       //外圍中斷使能
  GIE  = 1;
}
0
回復(fù)
xing1234
LV.6
3
2007-11-22 11:49
@xing1234
我的通信設(shè)置://工作頻率20M#include#include#define  PORTBIT(add,bit)((unsigned)(&add)*8+(bit))#define    RE_TRIS    TRISC4#define    DE_TRIS    TRISC5static  bit          RE  @  PORTBIT(PORTC,5);static  bit          DE  @  PORTBIT(PORTC,4);/*****************函數(shù)申明區(qū)********************/voidcom_usart_se_out8(void);voidcom_usart_out8(unsignedchar);voidcom_usart_se_in8(void);/***********************異步通信*********/voidcom_usart_se_out8(void){  PORTC|=0xE0;  TRISC7=1;      //0  TRISC6=0;      //1  RE_TRIS=0;      //0  RE_DE  DE_TRIS=0;  RE=1;  DE=1;//  SPBRG=19;    //19  波特率設(shè)baudrate=20M/16(19+1)=62500  SPBRG=64;      //64  19200  20M  BRGH  =1;      //高速傳送模式  SYNC  =0;      //選取異步模式  SPEN  =1;      //發(fā)送開端口      //0  CSRC  =1;      //選內(nèi)部時鐘  TX9  =0;  RCSTA=0x80;  RCIE  =0;      //接收中斷使能  PEIE=0;        //禁止發(fā)送中斷  SPEN  =1;      //發(fā)送開端口}voidcom_usart_out8(unsignedchardata_8){  TXREG=  data_8;  TXEN  =1;      //發(fā)送使能  while(!TRMT);  TXIF  =0;  TXEN  =0;      //發(fā)送使能結(jié)束}/***********************異步通信*********/voidcom_usart_se_in8(void){  TRISC7=1;      //0  TRISC6=0;      //1  RE_TRIS=0;  DE_TRIS=0;  RE=0;  DE=0;  SPBRG=64;      //64  19200  BRGH  =1;      //高速傳送模式  SYNC  =0;      //選取異步模式  RCIF=0;        //中斷標(biāo)志位清零  SPEN  =1;      //發(fā)送開端口      //0  RX9  =0;  CSRC  =1;      //選內(nèi)部時鐘  CREN  =1;      //0禁止連續(xù)接收  ADDEN=0;      //  TXIE=0;        //0禁止發(fā)送中斷  RCIE  =1;      //接收中斷使能  PEIE=1;      //外圍中斷使能  GIE  =1;}
自個頂一下!
0
回復(fù)
xing1234
LV.6
4
2007-11-22 15:22
我有點(diǎn)懷疑是晶振有問題,此前我試過多種20M的晶振,只有一種能正常工作,最近發(fā)現(xiàn)有時;連看門狗都死了,LCD顯示花屏.現(xiàn)在我在晶振兩端并了個1M的電阻試試再說.各位有何意見或建議盡管說.
0
回復(fù)
發(fā)
主站蜘蛛池模板: 国产成人精品久久二区二区 | 国产精品久久久久久婷婷动漫 | 国产精品亚洲精品日韩已方 | 久久中文高清 | 美国一级毛片aa | 一a毛片 | 国产一区二区在线在线 | 无码纯肉视频在线观看喷水 | 91精品论坛| 成人国产精品久久久按摩 | 麻豆精品国产入口 | 日韩一区二区三区在线爆乳 | 国产日韩在线观看视频 | 日本巨大的奶头在线观看 | 精品国产乱码91久久久久久网站 | 国产精品白丝jk黑袜喷水视频 | 国产理论一区二区三区 | 九九久久精品国产 | 久草在线免费在线观看 | 99re热精品 | 中日韩一级视频 | 亚洲国产精品成人女人久久久 | 97在线视频人妻无码 | 亚洲麻豆av肉丝网站一区二区 | 性色av一区二区怡红 | 国产精品国产三级国AV在线观看 | 国产剧情一区二区三区 | 欧美一区久久久 | 久久久久久中文 | 92自拍视频| 日日爱668| 日韩欧美在 | 美女一区二区久久 | 欧洲美妇乱人伦视频网站 | 国产精品国产三级国AV | 国产成人精品怡红院在线观看 | 久久久久久久久91 | 看免费的无码区特AA毛片 | 5252aⅴhaose我爱久久 | 精品视频在线观看一区 | 欧美成人高清ww |