DEMO9S08DZ60 UART code

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

DEMO9S08DZ60 UART code

830 次查看
pawankumar
Contributor III

Hi Friends,

 

I have purchased the DEMO board and am trying to send a char. through UART @9600bps. 8 bits, 1 stop bit, pairity : None.

 

Please see my code and help me understand my mistake. I am getting junk value at the terminal.

 

#include <hidef.h> /* for EnableInterrupts macro */

#include "derivative.h" /* include peripheral declarations */

#define led1  PTBD_PTBD3

#define led2  PTCD_PTCD5

void delay(int m)//delay in ms

{

  int i,p,j;

  for(p=0;p<m;p++)

  {

  for(i=0;i<4;i++)

  {

  for(j=0;j<1000;j++);

  }

  }

}

void main(void) {

  int s;

  s=0;

  SOPT1_COPT = 0; //Disable WDT

 

 

  /* include your code here */

  //Configure Baud rate 9600bps, 8 bit, 1 stop bit.

//MCG not altered, so, BUS_CLK =20MHz

  //9600bps

SCI1BDH=0x00;

SCI1BDL=0x82;

//invert bits

SCI1C3=SCI1C3|SCI1C3_TXINV_MASK;

//Transmission enable

SCI1C2=SCI1C2|SCI1C2_TE_MASK;

SCI1C1=0x00;

 

 

while(1)

{

while(SCI1S1_TDRE==0);

SCI1D=0x61;

//while(SCI1S1_TC==0);

delay(100);

 

}

 

 

 

 

  /* please make sure that you never leave main */

}

 

Thanks in advance for any help.

Pawan

标签 (1)
2 回复数

724 次查看
Alice_Yang
NXP TechSupport
NXP TechSupport

Hello Pawan,

After i checked your code , i think there have possilbe reasons , you can try .

(1)  change  SCI1BDL=0x82;  to SCI1BDL=0x85;

(2)  Why you invert bits ? you can try do not invert to check whether can receive correct data .

//invert bits

SCI1C3=SCI1C3|SCI1C3_TXINV_MASK;

Wart your result !

Hope it helps

Alice

724 次查看
pawankumar
Contributor III

Thanks Alice,

Yes, It helped me. I had trouble in configuring the Clock mode. As soon as this was set, serial communication happened seamlessly.

And as you had said, There is no need to invert the bits.

Having the External crystal @4MHz and BUSCLK at 2MHz, my registers are :

SCI1BDH = 0x00;                  

SCI1BDH_RXEDGIE=0x01;

SCI1C2_RIE=0x01;

SCI1BDL = 0x34;                    

SCI1C2_TE = 0x01;                   

SCI1C2_RE = 0x01; 

Best Regards,

Pawan

0 项奖励
回复