[cpp] view plaincopy
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
#define LED_D1 PTDD_PTDD0
#define LED_D1_DIR PTDDD_PTDDD0
#define LED_ON 0
#define LED_OFF 1
unsigned char SCANF_SEND_STRINGS[] = "HELLO MCU WORLD";
unsigned char *pSendString = SCANF_SEND_STRINGS;
/*************************************************************/
/* 初始化总线时钟PEE模式 */
/* 外部晶振频率为4MHz,总线频率16MHz */
/*************************************************************/
void INIT_MCG(void)
{
MCGC2=0x36;
while(!MCGSC_OSCINIT);
MCGC1=0xb8;
while(MCGSC_IREFST);
while(MCGSC_CLKST!=0b10);
MCGC2_LP = 1;
MCGC1 = 0x90;
MCGC3 = 0x48;
MCGC2_LP = 0;
while(!MCGSC_PLLST);
while(!MCGSC_LOCK);
MCGC1 = 0x10;
while(MCGSC_CLKST!=0b11);
}
void delay(void)
{
unsigned int i;
unsigned int j;
for(i = 0; i < 100; i++)
for(j = 0; j < 4000; j++);
}
void main(void) {
DisableInterrupts;
SOPT1 = 0;
INIT_MCG();
EnableInterrupts; /* enable interrupts */
/* include your code here */
LED_D1_DIR = 1;
LED_D1 = LED_OFF;
//以下为设置波特率,以及初始化SCI1控制寄存器
SCI1BDH = 0X00;
SCI1BDL = 0X68;//波特率设置为9600
SCI1C1 = 0x00; //设置SCI1为正常模式,八位数据位,无奇偶校验
SCI1C2 = 0x08; //允许发送数据,禁止中断功能
while(1)
{
while((*pSendString) != '\0')
{
while(!SCI1S1_TDRE);//SCI1S1_TDRE 为1表示发送数据缓冲器为空
SCI1D = *pSendString;
pSendString++;
LED_D1 = ~LED_D1;;//每发送一个字节,闪烁一次LED灯
delay();
}
}
for(;;) {
__RESET_WATCHDOG(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
|