历史上的今天
今天是:2025年03月25日(星期二)
2021年03月25日 | 飞思卡尔单片机DZ60---SCI(中断发送)
2021-03-25 来源:eefocus
#include #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 = 0x88; //TIE = 1(bit7) 启动TDRE中断,发送中断使能 //手册指出,如果设置了发送中断使能TIE位,每当TDRE = 1时都请求硬件中断 //TE = 1(bit3) 发送器打开 while(1); for(;;) { __RESET_WATCHDOG(); /* feeds the dog */ } /* loop forever */ /* please make sure that you never leave main */ } /*************************************************************/ /* SCI1中断向量函数 */ /* 向量编号为18,中断来源TDRE,TC */ /*************************************************************/ interrupt 18 void SCI1_SEND(void) { while(*pSendString != '




