EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
使用串口3定时器3做波特率发生器写了一个小程序,但是通讯实现不了,求指教 #include "STC81.h"
# m. C N" [# v% P, j8 X" L! k#include "intrins.h"
/ k& q( X/ ^3 i ?' S t( ?#include "485.h"7 Y: [, L7 }( g
#define FOSC 24000000UL, B. p/ N5 o$ j+ p
#define BRT (65536-FOSC/9600/4)
2 P" }5 j1 `$ [7 J$ C9 ~#define uchar unsigned char
5 }% [7 o2 A& |$ x( p4 n/ \bit busy;
/ i, g0 Z: i. i1 o7 F% cchar wptr; N8 O; r& Z2 V( G; b
char rptr;! N! [0 ^( d6 E+ s; q
char buffer[16];
# ]1 L3 w+ C. |void Uart3Isr()interrupt 17 using 19 Z6 @0 ?! \8 k1 k. r
{
8 Z- d( s( U% Y9 q9 ] if(S3CON&0x02)4 Q' {, R7 V3 c& o5 t4 D8 L3 Y% W
{
; E- V# V1 A' _2 L5 }- @ S3CON&=~0x02;
6 Q& p" F7 H3 E busy=0;. E$ x; a8 t9 `
}' {# b3 e4 @0 R4 [% i9 U! x1 ?
if(S3CON&0x01)0 n1 v& R2 K. a( \2 Y
{4 v2 M+ _. e1 o. N
S3CON&=~0x01;* y+ ?1 q2 o* b6 n L5 p: R: x6 o* Y
buffer[wptr++]=S3BUF;
9 [4 m/ @6 w/ Z8 m$ ~ wptr&=0x0f;
' E t* `2 v" L) B: {$ m if((buffer[7]==0x00)&&(buffer[8]==0x00))
: B% f5 O5 ?# h [" G6 _ {
! ^& e$ A- u4 X! C+ O! `$ N RUN11=RUN21=RUN31=RUN41=0;
; M" D/ j/ {/ I) C8 R STOP11=STOP21=STOP31=STOP41=0;
/ y" f) |4 ]( j }4 s1 t; ?6 H/ R. U8 |
}6 l, D' u+ R D
}: P+ z5 T6 d3 E3 E
void Uart3Init()+ L; H+ t* t4 I" n
{! s, n- U: r+ a" t1 V o4 f$ A
RE485=0;//RS485设置为接收方向) E9 Z/ A4 O8 }& {& k
S3CON=0x50; 9 t9 y) w; d4 Q; N
T3L=BRT; g/ e. e+ J/ L" H, w
T3H=BRT>>8;
/ ?1 A7 o. k, U- k+ }! l T4T3M=0x0a;2 p9 ^$ v: p* F% o" U/ a/ R
wptr=0x00;1 |4 k% C# s/ y9 o' ]4 |, U
rptr=0x00;
: d2 o, {/ T! F2 Q8 D' T; p4 Z" | busy=0;; S+ L2 y* z2 Q3 ]7 A l
}/ o- }9 `% l! U; x- t. w2 W& ^
void Uart3Send(char dat)# i1 D. o8 a8 f2 q( L
{
1 y( b6 B) `+ j; a+ g) D6 g while(busy);$ u& B3 V8 ]$ a1 w# H# |1 F
busy=1;
- R% S8 \6 J( ~3 y S3BUF=dat;9 q% J" N: H/ @* r
}0 ?" ^' p* I( [
void main()
) @- V2 w) Q6 e( t{. S0 h# K; i. B
P_SW2=0x02;& w; H, V9 [* r: }) P! v) }
Uart3Init();5 j9 F" R z# Z
IE2=0x08;6 c- l# G9 K8 o
EA=1;! Y" t3 w& @$ b! }
while(1)
9 F6 P- u; X/ ^- w7 i7 R+ c {: c# O0 Z- N( ? V
if(rptr!=wptr)
. t& x, _2 Y/ \. v6 V, g {
: g2 ]3 Y& u& u2 q6 H; O, G Uart3Send(buffer[rptr++]);
" D$ B- n' r$ w! E5 Z9 h& g rptr&=0x0f;
3 m7 }* Y( r, D* B% c, E' ^) J }
, } m0 e1 B; Z! P }1 B% z7 P, X' P. i0 r4 c% a6 v7 t! l
}
, G3 G) l _$ P, ` |