Exemple #1
0
//写入
void MMA845x_writecha(unsigned char address, unsigned char thedata)
{
	IIC_start();		//启动
	send_ch(MMA845x_IIC_ADDRESS);	//写入设备ID及写信号
	send_ch(address);	//X地址
	send_ch(thedata);	//写入设备ID及读信
	IIC_stop();
}
Exemple #2
0
//串口协议遵循windows对于回车的标准,串口的一个回车是由\n\r两个字符组成
void uart_print_ch(u8 ch)
{
	if (ch == '\n') {
		send_ch('\r');
	} else if (ch == '\r') {
		send_ch('\n');
	}
	send_ch(ch);
}
Exemple #3
0
//***************************************************
//向有子地址器件发送多字节数据
void send_to_nch(unsigned char ad_main,unsigned char ad_sub,unsigned char *buf,unsigned char num){
	unsigned char i;
	IIC_start();
	send_ch(ad_main); //发送器件地址
	send_ch(ad_sub); //发送器件子地址
	for(i=0;i<num;i++){
		send_ch(*buf); //发送数据*buf
		buf++;
	}
	IIC_stop();
}
Exemple #4
0
unsigned char MMA845x_readch(unsigned char address)
{
unsigned char ret = 100;
	IIC_start();		//启动
	send_ch(MMA845x_IIC_ADDRESS);	//写入设备ID及写信号
	send_ch(address);	//X地址
	IIC_start();		//重新发送开始
	send_ch(MMA845x_IIC_ADDRESS+1);	//写入设备ID及读信
	ret = read_ch();	//读取一字节
	IIC_stop();

	return ret;
}
Exemple #5
0
//***************************************************
//从有子地址器件读多个字节数据
//function:
void read_from_nch(unsigned char ad_main,unsigned char ad_sub,unsigned char *buf,unsigned char num){
	unsigned char i;
	IIC_start();
	send_ch(ad_main);
	send_ch(ad_sub);
	for(i=0;i<num-1;i++){
		*buf=read_ch();
		IIC_ack_main(ack); //主应答<ack=1>
		buf++;
	}
	*buf=read_ch();
	buf++; //本次指针调整无意义,目的是操作后buf指向下一地址
	IIC_ack_main(no_ack); //无需应答<no_ack=0>
	IIC_stop();
}
Exemple #6
0
//***************************************************
//从无子地址器件读单字节数据
//function:器件地址,所读数据存在接收缓冲区当前字节
void read_from_ch(unsigned char ad_main,unsigned char *buf){
	IIC_start();
	send_ch(ad_main); //发送器件地址
	*buf=read_ch();
	IIC_ack_main(no_ack); //无需应答<no_ack=0>
	IIC_stop();
}
Exemple #7
0
//***************************************************
//向无子地址器件发送单字节数据
void send_to_ch(unsigned char ad_main,unsigned char c){
	IIC_start();
	send_ch(ad_main); //发送器件地址
	send_ch(c); //发送数据c
	IIC_stop();
}
Exemple #8
0
/* str必须以\0字符结尾 */
void send_str(u8* str)
{
 	while (*str++)
		send_ch(*str);
}