打印
[其他ST产品]

通讯问题

[复制链接]
2864|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chen3bing|  楼主 | 2007-7-13 11:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问高手,ST7单片机如何发送数据?
C语言写发送数据程序如何写?谢谢!
沙发
浪淘沙| | 2007-7-13 11:47 | 只看该作者

ST7单片机如何发送数据?发到哪里?什么通道?

也不说清楚一点。

使用特权

评论回复
板凳
香水城| | 2007-7-13 12:25 | 只看该作者

请说明是哪一款的ST7单片机,不同的ST7单片机有不同的通讯

我们不是也不想成为您肚子里的蛔虫  ^_^

使用特权

评论回复
地板
grant_jx| | 2007-7-13 17:25 | 只看该作者

看来我们要规范一下发帖提问的标题了

这样可以节省大家的时间,提高问题答复效率

使用特权

评论回复
5
香水城| | 2007-7-13 17:49 | 只看该作者

很多事如果能站在对方的角度想一想,其实很容易

就楼主这个问题,如果我反问他,他又做何回答呢?

另外,在ST MCU的版面上清楚地标明“★ 提问题时请写明ST相关产品的编号;发言前请先在“分类阅读区”看看有无相关内容 ★”,而且是使用了不同的颜色,就是希望能引起大家的注意,但好像被很多人忽略。

要是有“读心术”就好了。

使用特权

评论回复
6
chen3bing|  楼主 | 2007-7-14 12:05 | 只看该作者

补充

我以后发贴子一定注意.单片机型号是ST72F324J6.
我是这么做的:
while(1)
{SCISR;
 SCIDR=9;
 for(i=0;i<25;i++)
  for(j=0;j<200;j++)
         ;
   readkey();        //读按键
 }
初始化: 
   ClrBit(PEDDR,0);
    ClrBit(PEDDR,1);
    ClrBit(PEOR,0);
    ClrBit(PEOR,1);

    SCIBRR = 0xdb;        //d2 PLL *2 19200 bauds TX RX Fcpu=8MHz c9 bauds=38400,db bauds=9600
    
    ClrBit(SCICR1,M);
    ClrBit(SCICR1,SCID);    // SCI on
    ClrBit(SCICR1,PCE);    // Parity Control Enable
    SetBit(SCICR1,PS);    //Odd parity
    
    ClrBit(SCICR2,TIE);
    ClrBit(SCICR2,TCIE);
    ClrBit(SCICR2,RIE);
    ClrBit(SCICR2,RE);

    SetBit(SCICR2,TE);
    SetBit(SCICR2,RIE);    //Receiver interrupt enable
    SetBit(SCICR2,RE);    //Receiver Enable
程序烧好以后,在单片机的发送脚上测不出波形.请高手指教.
谢谢!

使用特权

评论回复
7
grant_jx| | 2007-7-15 11:04 | 只看该作者

看得挺别扭的

SCICR2用那么多clrbit,先直接清个零不就行了。
我贴一段代码你自己对照寄存器的的先后顺序看如何配置实现发送吧:
;16MHzOSC  Fosc=16MHz ;Fosc2=8MHz ;PLL Close

;----------------------------
;Serial Communication Initialization
;Bps: 9600bps 
.SCI_Init
    CLR   SCICR1  
    CLR   SCICR2  
    LD    A,SCISR  ;Clear Flag
    LD    A,SCIDR 
    LD    A,#0 
    LD    SCIETPR,A          
    LD    A,#0    
    LD    SCIERPR,A
    LD    A,#$0D2     ;9600
    ;LD    A,#$       ;38400
    LD    SCIBRR,A
    LD    A,#0        ;8bit
    LD    SCICR1,A             
    LD    A,#$08      
    LD    SCICR2,A
    RET

;-------------------------------
;Serial Send Funication
.SCI_Tx
    LD    SCIDR,A 
.SCI_Wait
    BTJF  SCISR, #7, SCI_Wait    
    RET    

调用的时候参数送到A,像下面的一样:

.Debug_Battery_1    
    LD A, #$AA
    CALL SCI_Tx    
    LD A, Voltage_1_H
    CALL SCI_Tx
    LD A, Voltage_1_No_Counter
    CALL SCI_Tx
    LD A, Voltage_1_Yes_Counter
    CALL SCI_Tx
    LD A, PWM_1_Pulse
    CALL SCI_Tx
    LD A, Battery_1_Status    
    CALL SCI_Tx
    LD A, Temperature_1
    CALL SCI_Tx
    LD A, Temperature_1_Counter        
    CALL SCI_Tx
    LD A, Temperature_1_OverProt_Counter        
    CALL SCI_Tx
    LD A, Battery_1_RTC_H
    CALL SCI_Tx
    LD A, Battery_1_RTC_L
    CALL SCI_Tx  
    LD A, Voltage_1_Check_Counter
    CALL SCI_Tx      
    LD A, LED_1_Value
    CALL SCI_Tx
    LD A, LED_1_Flash
    CALL SCI_Tx
    RET        

上面得代码是我以前在ST72F324K4B6上用过的。

使用特权

评论回复
8
chen3bing|  楼主 | 2007-7-15 18:20 | 只看该作者

谢谢

谢谢你的回复!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

439

主题

2540

帖子

2

粉丝