feng89 发表于 2009-1-15 10:12:36

ko/0511串口的问题--通信没有成功。【恢复】

我用UART0做串口,使用内部8M晶振。

  

内部晶振,初始化。



      EXCLK=0;

      OSCSEL=0;

      EXCLKS=0;

      OSCSELS=0;

      AMPH=0;         // 时钟操作模式选择寄存器.内部时钟,X1\X2做I/O口.时钟频率:10M以下.

      

      PCC=0;          // 处理器时钟控制寄存器.    时钟不分频,默认是2分频.

      RCM=0x00;       // 内部高速振荡稳定好,D7-RSTS =1;

      LSRSTOP=0;      // 内部低速振荡器

      RSTOP=0;        // 内部高速振荡器   

      MOC=80;         // X1振荡器停止.禁止使用外部输入时钟.

      MCM=0;          // 主时钟模式寄存器,使用内部高速时钟.

      OSTS=0x05;      // 振荡稳定时间选择寄存器.

      while(RSTS==0); // 等?内部启动完成.



void UART9600INI0(void)

     {

     ASIM0=0;     //ReSet Must keep TXE0=0 RXE0=0 

     PM1.0=0;     //P10/TxD0/SCK10 out data PIN

     P1.0=1;

     PM1.1=1;     //when P11/RxD0/SI10 input data PIN

     P1.1=0;

     BRGC0=0xDA;  //Buard contron DA--9600   8/32=500K  500K/2*26=9615      ERR  0.15%

     ASIM0=0XFD;  //

     TXE0=1;

     RXE0=1;



     }



为什么发送数据,电脑上接收不到呢?

     

hotshooter 发表于 2009-1-16 09:21:13

先不接电脑,用示波器看单片机串口输出的波特率是否正确!

RENESAS-etouch 发表于 2009-1-15 17:32:19

涉及到的寄存器有:

1、异步串行接口操作模式寄存器0 (ASIM0)

2、异步串行接口接收错误状态寄存器0 (ASIS0)

3、波特率发生器控制寄存器0 (BRGC0)

4、端口模式寄存器1 (PM1)

5、端口寄存器1 (P1)

在UART 模式中设置操作的基本过程如下。

<1> 设置BRGC0寄存器 

<2> 设置ASIM0的1~4位 (SL0、CL0、PS00和PS01)

<3> 将ASIM0的第7位(POWER0)置 1。

<4> 将ASIM0的第6位 (TXE0)置 1。 —>允许发送。

将ASIM0的第 5位(RXE0)置1。 -> 允许接收。

<5> 对TXS0 寄存器赋值。 ->开始发送数据。



寄存器设置细节请参照数据手册。并且注意波特率设置是否正确。
页: [1]
查看完整版本: ko/0511串口的问题--通信没有成功。【恢复】