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

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

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

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

/*****************函數申明區********************/
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   波特率設baud rate=20M/16(19+1)=62500
  SPBRG = 64;       //64   19200  20M
  BRGH  = 1;      //高速傳送模式
  SYNC  = 0;       //選取異步模式
  SPEN  = 1;       //發送開端口      //0
  CSRC  = 1;       //選內部時鐘
  TX9   = 0;
  RCSTA=0x80;
  RCIE  = 0;      //接收中斷使能
  PEIE = 0;        // 禁止發送中斷
  SPEN  = 1;       //發送開端口
}
void com_usart_out8(unsigned char data_8)
{
  TXREG =  data_8;
  TXEN  = 1;       //發送使能
  while(!TRMT);
  TXIF  = 0;
  TXEN  = 0;       //發送使能結束
}
/***********************異步通信*********/
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;        //中斷標志位清零
  SPEN  = 1;       //發送開端口      //0
  RX9   = 0;
  CSRC  = 1;       //選內部時鐘
  CREN  = 1;       //0禁止連續接收
  ADDEN = 0;      //
  TXIE=0;         // 0禁止發送中斷
  RCIE  = 1;      //接收中斷使能
  PEIE = 1;       //外圍中斷使能
  GIE  = 1;
}
0
回復
xing1234
LV.6
3
2007-11-22 11:49
@xing1234
我的通信設置://工作頻率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);/*****************函數申明區********************/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  波特率設baudrate=20M/16(19+1)=62500  SPBRG=64;      //64  19200  20M  BRGH  =1;      //高速傳送模式  SYNC  =0;      //選取異步模式  SPEN  =1;      //發送開端口      //0  CSRC  =1;      //選內部時鐘  TX9  =0;  RCSTA=0x80;  RCIE  =0;      //接收中斷使能  PEIE=0;        //禁止發送中斷  SPEN  =1;      //發送開端口}voidcom_usart_out8(unsignedchardata_8){  TXREG=  data_8;  TXEN  =1;      //發送使能  while(!TRMT);  TXIF  =0;  TXEN  =0;      //發送使能結束}/***********************異步通信*********/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;        //中斷標志位清零  SPEN  =1;      //發送開端口      //0  RX9  =0;  CSRC  =1;      //選內部時鐘  CREN  =1;      //0禁止連續接收  ADDEN=0;      //  TXIE=0;        //0禁止發送中斷  RCIE  =1;      //接收中斷使能  PEIE=1;      //外圍中斷使能  GIE  =1;}
自個頂一下!
0
回復
xing1234
LV.6
4
2007-11-22 15:22
我有點懷疑是晶振有問題,此前我試過多種20M的晶振,只有一種能正常工作,最近發現有時;連看門狗都死了,LCD顯示花屏.現在我在晶振兩端并了個1M的電阻試試再說.各位有何意見或建議盡管說.
0
回復
主站蜘蛛池模板: 国产女同一区二区在线 | 超碰在线日本 | 在线观看91精品国产入口 | 国产精品不卡一区 | 韩国日本三级在线 | 少妇精品亚洲一区二区成人 | 亚洲国产成人精品无色码 | 亚洲日韩欧美综合 | 国产成人精品无码一区二区 | 国产色片免费色网视频 | 91视频在线视频 | 亚洲综合一区国产精品 | 男同男性xx视频在线观看免费 | 亚洲无限看 | 一区三区在线专区在线 | 91色片| 精品福利在线观看 | 成人黄色片在线观看 | 久久久精品福利视频 | 久久99精品国产麻豆宅宅 | 91久久国产综合久久91精品网站 | 亚洲日韩欧美内射教官 | 最好看的中文字幕第一页在线 | 伊人狠狠干 | 色视频在线观看免费视频 | 一本久久综合亚洲鲁鲁五月天 | 日本视频免费 | 亚洲日本在线a | 久久久精品久久 | 99久久精品免费看蜜桃的推荐词 | 国产一区二区三区四区成男人 | 变形金刚之超能勇士免费观看 | 草碰视频| 亚洲国产成人精品无码一区二区 | 老司机深夜福利在线观看 | 蜜桃羞羞| 老色鬼视频77777av | 变形金刚之超能勇士免费观看 | 午夜精品久久久久9999高清 | 日本r级未删减在线观看 | 在线国产精品一区 |