找回密码
 注册
关于网站域名变更的通知
查看: 229|回复: 5
打印 上一主题 下一主题

哪位大神指导一下STC8单片机的485通讯程序?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-5-15 10:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x

使用串口3定时器3做波特率发生器写了一个小程序,但是通讯实现不了,求指教

#include "STC81.h"
3 P9 T$ p9 {- N1 Q! B; Y#include "intrins.h"
: B7 g$ `# J. K#include "485.h"/ Z3 `4 h% j: L+ F
#define FOSC   24000000UL. P  o. v! }% k' f  o5 j
#define BRT  (65536-FOSC/9600/4)
& t3 \* ^' u$ p+ H% c#define uchar unsigned char
% H* I& K1 v, G6 Q2 f4 b  n  g" Lbit busy;* @4 |8 I' q7 c6 @5 Z
char wptr;5 S" l- H& u& g+ f. s2 g
char rptr;4 [% M* \2 s) a" V: f
char buffer[16];
# C5 z3 v6 Q" o- z3 D" y5 T5 d3 Avoid Uart3Isr()interrupt 17 using 1
3 d% C6 e+ [& w& ^! u7 ~% M8 F{: K: g3 u% o# {* k; Y" Y, @
if(S3CON&0x02)* l- `$ \8 T3 g- U' l5 V) I
{" ^/ E. Q& ^# p  K
  S3CON&=~0x02;; V$ s2 S9 H; o
  busy=0;( X1 V; I+ p+ R2 J
}8 x8 u6 c+ d1 b+ W/ r2 x0 n
if(S3CON&0x01)* B; K# d. O& J( E" s9 U" n: \3 f
{
: \* t! S$ P& {  M* u' B" v' X  S3CON&=~0x01;% F7 V4 O0 s% K. ]5 N( a/ M% }6 v
  buffer[wptr++]=S3BUF;: i* g2 u0 `, K$ P. C7 [
  wptr&=0x0f;
/ F( L5 v% a& g& D        if((buffer[7]==0x00)&&(buffer[8]==0x00))  i5 _, G3 V, ^3 d9 S2 Y- |0 |
   {
5 v1 n8 ^+ \  ]" w  m2 K   RUN11=RUN21=RUN31=RUN41=0;
) f& R4 ~+ \' _6 v7 a4 s        STOP11=STOP21=STOP31=STOP41=0;
8 v& w& A/ g( K3 a& W9 L   }
; |! o7 R8 X9 O; w, Z }
  K' `1 J" M) x/ S( \! m# b- [}
( i5 G& w0 x$ y  y6 v6 ]/ Avoid Uart3Init()& q: s5 a; ]  j
{% V5 c" K# i2 l* d+ L$ F! M
RE485=0;//RS485设置为接收方向; u2 g5 q6 R6 J6 P$ P
S3CON=0x50;
! K1 g* u  C, h( b" N- L. J T3L=BRT;8 z3 N, R# y# s# h/ y+ M! g3 O
T3H=BRT>>8;
1 o; \9 x4 _+ m. V: \ T4T3M=0x0a;
9 `7 _/ _/ w5 I: y$ @ wptr=0x00;% i* i+ I2 m; ~( U) u% t* p4 A7 x  C
rptr=0x00;- C& Z% `# T3 E( t5 k, ^
busy=0;
: o2 U: k% h+ b* b& R1 [}/ T. R5 h$ ]& D! a
void Uart3Send(char dat)
( g: S# Y; z+ F/ L1 F' R{
# [, U; c' E$ p8 O" K( \ while(busy);0 i% M. C6 f! Q" [( H
busy=1;
1 w' K1 ?9 |# I  H8 _ S3BUF=dat;* J' B4 |! x( b/ L& w7 z
}
9 q8 z) \3 B" [5 Y, _0 X# b* Mvoid main()3 |0 C7 f; Q1 U3 p9 G( T& J
{) G* c5 ]* A) W9 ~# I
P_SW2=0x02;+ F* N) [: C* @- ^. i
Uart3Init();& Q, [: Q# R9 r! k) U
IE2=0x08;) f1 U% x% P# P9 j! r& j
EA=1;3 g' H$ q, ?+ G
while(1)" c! p8 H. F3 }) `( C& m! `
{
: f  Q( D5 F  Z: z" X# o  if(rptr!=wptr)
8 A% h2 ?) x" X" y# C. Z  {
8 B% }8 v* @  _9 M: g3 o- ?   Uart3Send(buffer[rptr++]);% \' J5 {0 o; T7 ]  _
   rptr&=0x0f;3 S5 r5 u! \) u
  }( m& Z! b  l" G, s7 E7 \
}5 N) b4 Y, i6 |' H
}


$ M8 \4 z1 ]6 V" F$ P8 L5 l

该用户从未签到

2#
发表于 2020-5-15 13:16 | 只看该作者
这个感觉有点难

该用户从未签到

4#
发表于 2020-5-15 15:51 | 只看该作者
虽然我也不懂,但是我觉得你应该从器件手册研究
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    6#
    发表于 2020-5-18 20:18 | 只看该作者
    这个程序能用吗
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-26 04:46 , Processed in 0.156250 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表