历史上的今天
今天是:2025年03月25日(星期二)
2021年03月25日 | 飞思卡尔单片机DZ60---SCI(查询接收)
2021-03-25 来源:eefocus
#include #include "derivative.h" /* include peripheral declarations */ //整个功能:PC-单片机-PC,PC串口发数据-单片机串口接收数据-单片机将接收到的数据发送回给PC #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; unsigned char ReceiveString; /*************************************************************/ /* 初始化总线时钟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 = 0x0C; //RE = 1(bit2)接收器打开 //TE = 1(bit3)发送器打开 while(1) { while(!SCI1S1_RDRF);// SCI1S1_RDRF = 1时,表示接收数据寄存器满,可以取出数据 SCI1S1_RDRF = 0; //清除SCI1S1_RDRF ReceiveString = SCI1D; //将接收寄存器中的数据保存至ReceiveString // LED_D1 = ~LED_D1; // delay(); while(!SCI1S1_TDRE);//SCI1S1_TDRE = 1时,发送数据寄存器(缓存区)空,可以发送数据 SCI1D = ReceiveString;//将接收到的数据,放至发送数据寄存器(缓存区),发送 // LED_D1 = ~LED_D1; // delay(); } for(;;) { __RESET_WATCHDOG(); /* feeds the dog */ } /* loop forever */ /* please make sure that you never leave main */ } 程序改成下面语句,上位机串口发大数据不死机,但可能丢数据。 while(1) { /* while(!SCI1S1_RDRF);// SCI1S1_RDRF = 1时,表示接收数据寄存器满,可以取出数据 SCI1S1_RDRF = 0; //清除SCI1S1_RDRF ReceiveString = SCI1D; //将接收寄存器中的数据保存至ReceiveString while(!SCI1S1_TDRE);//SCI1S1_TDRE = 1时,发送数据寄存器(缓存区)空,可以发送数据 SCI1D = ReceiveString;//将接收到的数据,放至发送数据寄存器(缓存区),发送 */ if(SCI1S1_RDRF == 1) { ReceiveString = SCI1D; if(SCI1S1_TDRE == 1) { SCI1D = ReceiveString; } } }
史海拾趣
|
VXWORKS启动时超级终端会打印以下信息: Copyright 1984-1998 Wind River Systems, Inc. CPU: Motorola ADS - PowerPC 860 VxWorks: 5.4 ...… 查看全部问答> |
|
2440BSP 将CS8900改为DM9000A,需要做那些改动? 我想把原BSP中网卡CS8900换成DM9000A,请问各位大侠除了驱动外,startup.s 需要做那些改动? EBOOT中怎么改?… 查看全部问答> |
|
我现在写不了某些寄存器(就I2C寄存器写不进去,其他都可以) 有遇见这种问题的么? 我是关了MMU的啊~ 情况如下: 我在shell中输入 查看内存0x55000000位置的寄存器。 d 0x55000000 55000000: 0100 0000 0000 0000 0000 0000 00 ...… 查看全部问答> |
|
求购 S3C4510B 的开发板 最近找了份4510b的资料,看着不错可惜没有板子练。真是郁闷啊!不知道哪为高手还有收藏! 有的话留个言! 电话:13141280460 qq:406672875… 查看全部问答> |
|
下载 (9.61 KB) 2009-12-4 16:42 下载 (17.98 KB) 2009-12-4 16:42 SPI1驱动如下: void SPI_LIS33_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; SPI_InitTy ...… 查看全部问答> |
|
开发环境是ew430-ev-341a,而且已破解,生成release模式的txt文件 串口对Flash编程器:LSD-BSL430 下载*.txt文件时,为什么起始地址必须是@F000才能下载成功,另外这样下载后的程序会不会正确执行?如下所示txt文件 @F000 30 40 10 02 FF 3F 31 ...… 查看全部问答> |
|
The embedded system of the analog design 好书适合数字工程师了解的模拟知识 本书为那些希望掌握基本模拟知识的数字工程师而写,内容包括A/D转换器、D/A转换器、运放、滤波器以及模拟和数字系统集成设计。 本书特别适合那些从事信息家电、工业控制和机电控制系统等模拟/数字 ...… 查看全部问答> |




