⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tc35掉电.c

📁 ARM控制TC35在掉电模式下通讯的源码
💻 C
字号:
/*********************************************************************************

                              演示向串口发送数据。
                         
       使用外部11.0592MHZ晶振,通讯波特率115200,8位数据位,1位停止位,无奇偶校验

**********************************************************************************/


#include "config.h"

#define  UART_BPS    9600
#define  IGT         (1<<22)

void DelayNS(uint32 dly)
{
	uint32 i;
	
	for(;dly>0;dly--)
	   for(i=0;i<50000;i++);
}


void UART0_Init(void)
{
	uint16 Fdiv;
	
	U0LCR=0x83;          //DLAB=1,允许设置波特率,即使能访问除数锁存
	
	Fdiv=(Fpclk/16)/UART_BPS;    //设置串口波特率(U0DLM,U0DLL)
	U0DLM=Fdiv/256;
	U0DLL=Fdiv%256;
    
    U0LCR=0x03;	        //DLAB=0,(在该条件下,才可以访问U0RBR和U0THR寄存器)
} 


void UART0_SendByte(uint8 dat)
{
	U0THR=dat;          //发送数据,将数据存入发送保持寄存器中
	
	while((U0LSR&0x40)==0);    //等待数据发送完毕(即判断线状态寄存器U0LSR第6位发送器TEMT是否为空,为空时TEMT置位)
}

void UART0_SendStr(uint8 const *str)
{
	while(1)
	{
		if(*str=='\0') break;    //判断数据是否发送完毕
		UART0_SendByte(*str++);
	}
}



int main(void)
{
   uint8   SEND_STRING1[] = "AT\r\n";
   uint8   SEND_STRING2[] = "AT+CMGF=1\r\n";
   uint8   SEND_STRING3[] = "AT+CMGS=13759898470\r\n";
  // uint8   SEND_STRING5[] = "qyqy244.9cm 2004.02.19/13:32:43qwqw\r\n";
   uint8   SEND_STRING4[] = " ok! \x01A\0";
	
	
	
	PINSEL0=0x00000005;         //设置P0.0和P0.1连接串口UART0
	PINSEL1=0x00000001;         //设置P0.16连接外部中断EINT0

	IO0DIR=IGT;	
	IO0SET=IGT;
        IO0CLR=IGT;
	DelayNS(150);
	IO0SET=IGT;
	DelayNS(5000);
	    
	
	EXTWAKE=0x01;              //外部中断0唤醒芯片
	EXTINT=0x01;               //清除EINT0中断标志
		
	while(1)
	{
		
		PCONP=0x00;    //关闭定时器、RTC和UART等功能部件
		PCON=0x02;     //系统进入掉电模式
		
		
		/* 系统唤醒后*/
		
		PLLCON=0x01;
		PLLFEED=0xaa;
		PLLFEED=0x55;
		while(PLLSTAT&(1<<10)==0);
		PLLCON=0x03;
		PLLFEED=0xaa;
		PLLFEED=0x55;               //重新使能PLL
		
		UART0_Init();              //串口初始化
	    DelayNS(50);
		UART0_SendStr(SEND_STRING1);    //发送数据
		DelayNS(50);
		UART0_SendStr(SEND_STRING2);    //发送数据
		DelayNS(50);
		UART0_SendStr(SEND_STRING3);    //发送数据
		DelayNS(50);
		UART0_SendStr(SEND_STRING4);    //发送数据
		DelayNS(50);
		
		EXTINT=0x01;
	}

   return(0);
}





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -