历史上的今天
返回首页

历史上的今天

今天是:2025年03月25日(星期二)

正在发生

2021年03月25日 | 飞思卡尔单片机DZ60---SCI(查询接收)

2021-03-25 来源:eefocus

#include /* for EnableInterrupts macro */

#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;

       } 

    }

            

  }


推荐阅读

史海拾趣

GSI Technology公司的发展小趣事

随着电子行业的快速发展,GSI Technology积极寻求新的市场机会。公司凭借其高性能存储器产品在军事、医疗、汽车等领域的应用优势,成功进军这些新兴市场。同时,GSI还积极与行业内其他企业建立战略合作关系,共同推动技术创新和市场拓展。例如,GSI与某知名汽车制造商合作,为其开发定制化的高性能存储器解决方案,有效提升了汽车智能化水平。

Apex Tool Group公司的发展小趣事

面对电子行业日益激烈的市场竞争和快速变化的市场需求,GSI Technology不断调整战略方向,积极应对挑战。公司加大在研发方面的投入,不断优化产品结构和生产工艺,提高产品质量和竞争力。同时,GSI还积极推动企业转型升级,向更加智能化、绿色化的方向发展。通过一系列的努力,GSI成功克服了行业内的诸多挑战,保持了持续稳定的发展态势。

Hamlin ( Littelfuse )公司的发展小趣事

进入21世纪后,GSI Technology继续加大研发投入,不仅巩固了其在SRAM领域的领先地位,还成功扩展了产品线,包括同步突发SRAM、无总线周转SRAM等。同时,公司还推出了SigmaRAM、SigmaQuad、SigmaQuad II等系列产品,这些产品以其卓越的性能、高可靠性和低功耗特性,赢得了市场的广泛认可。此外,GSI还致力于提供超长产品支持生命周期和完整的售前售后服务,进一步增强了客户粘性。

Agilent Technologies公司的发展小趣事

进入21世纪后,GSI Technology继续加大研发投入,不仅巩固了其在SRAM领域的领先地位,还成功扩展了产品线,包括同步突发SRAM、无总线周转SRAM等。同时,公司还推出了SigmaRAM、SigmaQuad、SigmaQuad II等系列产品,这些产品以其卓越的性能、高可靠性和低功耗特性,赢得了市场的广泛认可。此外,GSI还致力于提供超长产品支持生命周期和完整的售前售后服务,进一步增强了客户粘性。

Andigilog公司的发展小趣事

随着电子行业的快速发展,GSI Technology积极寻求新的市场机会。公司凭借其高性能存储器产品在军事、医疗、汽车等领域的应用优势,成功进军这些新兴市场。同时,GSI还积极与行业内其他企业建立战略合作关系,共同推动技术创新和市场拓展。例如,GSI与某知名汽车制造商合作,为其开发定制化的高性能存储器解决方案,有效提升了汽车智能化水平。

Accuride公司的发展小趣事

作为一家专注于商用车零部件的公司,Accuride始终致力于技术创新和产品升级。其产品线涵盖了商用车车轮、卡车车身和底盘部件等多种零部件,且拥有多个知名品牌,如Accuride®、Gunite®、ImperialTM和BrillionTM等。通过不断研发和创新,Accuride成功提升了产品的质量和性能,赢得了客户的广泛认可。

问答坊 | AI 解惑

如何修改VXWORKS的启动标题

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中怎么改?…

查看全部问答>

vxWorks寄存器读写问题

我现在写不了某些寄存器(就I2C寄存器写不进去,其他都可以) 有遇见这种问题的么? 我是关了MMU的啊~ 情况如下: 我在shell中输入 查看内存0x55000000位置的寄存器。 d 0x55000000 55000000:  0100 0000 0000 0000 0000 0000 00 ...…

查看全部问答>

求购 S3C4510B 的开发板 (二手也可以)

求购 S3C4510B 的开发板 最近找了份4510b的资料,看着不错可惜没有板子练。真是郁闷啊!不知道哪为高手还有收藏! 有的话留个言! 电话:13141280460 qq:406672875…

查看全部问答>

额定电流估算口诀

已知电机功率,如何估算电机的额定电流? 三相二百二电机,千瓦三点五安培。 三相三百八电机,一个千瓦两安培。 三相六百六电机,千瓦一点二安培。 三相三千伏电机,四个千瓦一安培。 三相六千伏电机,八个千瓦一安培。 3KW以下,1个KW,2.5个流…

查看全部问答>

有没有人用过HS1101湿度传感器?

本人想调一下湿度传感器?有没有人调试过指点一下…

查看全部问答>

STM32SPI1通讯

下载 (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 ...…

查看全部问答>

msp430编程器下载问题

开发环境是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转换器、运放、滤波器以及模拟和数字系统集成设计。  本书特别适合那些从事信息家电、工业控制和机电控制系统等模拟/数字 ...…

查看全部问答>

为什么这么便宜?

Altera FPGA开发板DE0-Nano Cyclone IV EP4CE22F17C6N原厂开发板     这款LE和  EP3C25的差不多      速度又快     为什么这么便宜? 请高人解答?   我正想买 ...…

查看全部问答>