久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索

STC8單片機(jī)的485通訊程序 實(shí)現(xiàn)不了 求幫助

查看數(shù): 5033 | 評(píng)論數(shù): 11 | 收藏 3
關(guān)燈 | 提示:支持鍵盤(pán)翻頁(yè)<-左 右->
    組圖打開(kāi)中,請(qǐng)稍候......
發(fā)布時(shí)間: 2019-7-1 18:35

正文摘要:

使用串口3定時(shí)器3做波特率發(fā)生器寫(xiě)了一個(gè)小程序,但是通訊實(shí)現(xiàn)不了,求指教 #include "STC81.h" #include "intrins.h" #include "485.h" #define FOSC   24000000UL #define BRT  ...

回復(fù)

ID:47286 發(fā)表于 2021-5-13 18:12
1. 串口無(wú)需設(shè)置推挽 什么都不動(dòng)就行 就是說(shuō) 初始化時(shí) 和串口相關(guān)的端口什么都不做 維持原有狀態(tài)即可 但通常我用的時(shí)候都會(huì)在RxD和TxD管腳接上拉電阻 也只是為了穩(wěn)定性 不用上拉我試過(guò) 可以用
2. 485控制端口無(wú)需推挽 準(zhǔn)雙向即可驅(qū)動(dòng)485芯片 無(wú)需上拉 無(wú)需限流 當(dāng)然 有個(gè)限流更保險(xiǎn)一點(diǎn)
3. 你先調(diào)試TTL通訊 只要TTL正常 在發(fā)送函數(shù)中 先RE485=1然后是標(biāo)準(zhǔn)的TTL發(fā)送語(yǔ)句最后RE485=0 恢復(fù)到接收狀態(tài)即可
4. 無(wú)所謂用串口幾 都一樣 STC的串口234和1的不同基本上就是寄存器不能位尋址 加上自己擴(kuò)展的幾組功能寄存器 其它沒(méi)什么不一樣的

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

ID:155507 發(fā)表于 2021-5-13 15:48
yhy08090 發(fā)表于 2021-5-13 12:36
P0M1 &= 0xFE;        P0M0 &= 0xFE;                          //設(shè)置P0.0為準(zhǔn)雙向口
        P0M1 &= 0x ...

芯片型號(hào) : STC8A8K64S4A12

關(guān)于此芯片的重要說(shuō)明:
  所有串口(包括串口1、串口2、串口3、串口4)的發(fā)送端口均需要
      軟件設(shè)置為強(qiáng)推挽輸出模式或者外接3~5K的上拉電阻
ID:911776 發(fā)表于 2021-5-13 12:36
P0M1 &= 0xFE;        P0M0 &= 0xFE;                          //設(shè)置P0.0為準(zhǔn)雙向口
        P0M1 &= 0xFD;        P0M0 |= 0x02;                          //設(shè)置P0.1為推挽輸出
這里為什么需要設(shè)置呢?
ID:49198 發(fā)表于 2019-7-23 13:58
clarence123 發(fā)表于 2019-7-2 11:43
還有就是我用的串口3,是不是應(yīng)該設(shè)置成推挽輸出

是的STC需要設(shè)置推挽輸出或者外接上拉電阻的
ID:323902 發(fā)表于 2019-7-2 11:43
還有就是我用的串口3,是不是應(yīng)該設(shè)置成推挽輸出
ID:323902 發(fā)表于 2019-7-2 11:02
xuyaqi 發(fā)表于 2019-7-1 21:19
很多文件都沒(méi)有,最好把工程發(fā)出來(lái)。

目前在用昆侖通泰的觸摸屏和STC8傳輸數(shù)據(jù),沒(méi)有明確的工程
ID:323902 發(fā)表于 2019-7-2 10:05
angmall 發(fā)表于 2019-7-1 20:50
給你改了,對(duì)比一下就知道哪里錯(cuò)了。

萬(wàn)分感謝!串口已通,但有幾點(diǎn)問(wèn)題我不太明白:

1.數(shù)據(jù)包用串口助手發(fā)送幾十次后才能收到數(shù)據(jù),接收73位數(shù)據(jù)后后面收不到數(shù)
2.接收到的數(shù)據(jù)和發(fā)送的內(nèi)容完全不同

盼您解答,再次向您表示感謝!
ID:47286 發(fā)表于 2019-7-1 21:42
發(fā)送的時(shí)候 要 RE485=1; 發(fā)送完畢再清零
ID:94031 發(fā)表于 2019-7-1 21:19
很多文件都沒(méi)有,最好把工程發(fā)出來(lái)。
ID:155507 發(fā)表于 2019-7-1 20:50
給你改了,對(duì)比一下就知道哪里錯(cuò)了。



  1. #include "STC81.h"
  2. #include "intrins.h"
  3. #include "485.h"
  4. #define FOSC   24000000UL
  5. #define BRT  (65536-FOSC/9600/4)
  6. #define uchar unsigned char
  7. bit busy;
  8. char wptr;
  9. char rptr;
  10. char buffer[16];

  11. void Uart3Isr() interrupt 17 using 1
  12. {
  13.         IE2 &= 0xF7;                                  // 串口3中斷關(guān)閉
  14.         if(S3CON&0x02)   //在停止位開(kāi)始發(fā)送時(shí),該位置1
  15.         {
  16.                 S3CON &= ~0x02;              //清除S3CON寄存器對(duì)應(yīng)S3TI位(該位必須軟件清零)
  17.                 busy=0;
  18.         }
  19.         if(S3CON&0x01)        //串行接收到停止位的中間時(shí)刻時(shí),該位置1
  20.         {
  21.                 S3CON &= ~0x01;         //清除S3CON寄存器對(duì)應(yīng)S3RI位(該位必須軟件清零)
  22.                 buffer[wptr++]=S3BUF;
  23.                 wptr&=0x0f;
  24.                 if((buffer[7]==0x00)&&(buffer[8]==0x00))
  25.                 {
  26.                         RUN11=RUN21=RUN31=RUN41=0;
  27.                         STOP11=STOP21=STOP31=STOP41=0;
  28.                 }
  29.         }
  30.         IE2 |= 0x08;                     // 串口3中斷打開(kāi)
  31. }
  32. void Uart3Init()
  33. {
  34.         RE485=0;//RS485設(shè)置為接收方向
  35.         //S3CON=0x50;
  36.         S3CON |= 0x50;                  //串口3選擇定時(shí)器3為波特率發(fā)生器,啟動(dòng)串行接收器
  37.         S3CON &= 0x70;                  //8位數(shù)據(jù),可變波特率
  38.         T3L=BRT;
  39.         T3H=BRT>>8;
  40.         T4T3M|=0x0a;
  41.         wptr=0x00;
  42.         rptr=0x00;
  43.         busy=0;
  44. }
  45. void Uart3Send(char dat)
  46. {
  47.         while(busy);
  48.         busy=1;
  49.         S3BUF=dat;
  50. }
  51. void main()
  52. {
  53.         P0M1 &= 0xFE;        P0M0 &= 0xFE;                          //設(shè)置P0.0為準(zhǔn)雙向口
  54.         P0M1 &= 0xFD;        P0M0 |= 0x02;                          //設(shè)置P0.1為推挽輸出
  55.         P_SW2=0x02;
  56.         Uart3Init();
  57.         //IE2=0x08;
  58.         IE2 |= 0x08;         // 串口3中斷打開(kāi)
  59.         IE2 &= 0xDF;         // 關(guān)閉定時(shí)器3中斷
  60.         EA=1;
  61.         while(1)
  62.         {
  63.                 if(rptr!=wptr)
  64.                 {
  65.                         Uart3Send(buffer[rptr++]);
  66.                         rptr&=0x0f;
  67.                 }
  68.         }
  69. }


復(fù)制代碼

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 色天天综合 | 日韩精品在线播放 | 日韩视频国产 | 麻豆久久精品 | 欧美综合一区二区三区 | 91精品国产91久久久久久最新 | 伊人成人免费视频 | 黄色在线观看网址 | 中文字幕高清av | 欧美久久国产 | 欧美黑人一区 | 成年女人免费v片 | 久久狠狠| 欧美偷偷 | 99pao成人国产永久免费视频 | 色资源在线观看 | a级黄色片视频 | 亚洲二区在线观看 | 欧美黄在线观看 | 久久无毛| 亚洲国产一区在线 | 成人在线h| 黄视频在线网站 | 亚洲一区二区三区在线播放 | 一区二区三区视频在线 | 免费一级网站 | av日韩高清 | 中文字幕在线视频免费视频 | 久久精品免费看 | 中文在线а√在线8 | 精品伊人| 国产精品成人一区二区三区 | 欧美日韩亚洲视频 | 日韩精品一区二区三区视频播放 | 亚洲精品黄色 | 国产精品a久久久久 | 国产高清在线精品 | 欧美日韩理论 | 国产午夜在线观看 | 99精品电影 | 国产精品一区二区三区在线 |