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

📄 usart.h

📁 MMA7455发送资料
💻 H
字号:
static volatile unsigned char stmp;//暂存接收UDR信息. 
static volatile unsigned char inbuffer[10];//串口接收器缓冲器. 
static volatile int inbufcount=0;//缓冲器计数器. 
/*------宏定义------*/
#define uchar	unsigned char
#define uint	unsigned int
#define BIT(x)	(1<<(x))
#define NOP()	asm("nop")
#define WDR() 	asm("wdr")


extern void twi_write_8(uchar adress,uchar com);
extern void twi_read_8(uchar adress);
extern void init_mma7455(void);

//串口通信初始化
void usart_init(void)
{
	UCSRB = 0x00;//禁止中断
	UCSRA = 0x00;
	UCSRC = BIT(URSEL) | 0x06;
	UBRRL = 0x0C;
	UBRRH = 0x00;
	UCSRB = 0x98;
}


//发出串口正常信号.
void ssig(char a[])
{
	int c=strlen(a);
	//在这继续添加你的代码
	for(int count=0;count<c;count++)
	{
		_delay_us(300);
		UDR=a[count];
	}
	_delay_us(300);
}





//串行接收结束中断服务程序 
ISR(USART_RXC_vect) 
{ 
cli();//关中断. 
stmp=UDR;//保护接收UDR数据. 
    if((stmp!='x')&&(stmp!='y')&&(stmp!='z')&&(stmp!='r'))//装缓冲区,以换行符为结束字节. 
    { 
	    inbuffer[inbufcount++]=stmp; 
	 	return; 
    } 
    else //结束条件满足,执行操作.
    { 
		if(stmp=='x')
		{
			twi_write_8(0x10,inbuffer[inbufcount-1]);
		}
		else if(stmp=='y')
			{
				twi_write_8(0x12,inbuffer[inbufcount-1]);	
			}
		else if(stmp=='z')
			{
				twi_write_8(0x14,inbuffer[inbufcount-1]);
			}
		else if(stmp=='r')
			{
				init_mma7455();
			}
    } 
	inbufcount=0;//放在这来起来延时的作用.一举两得. 
}

⌨️ 快捷键说明

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