微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > stm32之模拟i2c驱动ht16c22

stm32之模拟i2c驱动ht16c22

时间:12-03 来源:互联网 点击:
iic.h文件如下:

#ifndef _stm32f103_myi2c_h_
#define _stm32f103_myi2c_h_

//IO方向设置
#define SDA_IN() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<12;}
#define SDA_OUT() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<12;}

//IO操作函数
#define IIC_SCL PBout(10) //SCL
#define IIC_SDA PBout(11) //SDA
#define READ_SDA PBin(11) //输入SDA

//ht16c22内部 参数设置
#define SlaveAddress 0x7e //0x7e

#define ModeSet 0x8c //80Hz,turn on sys and LCD bias,1/3 bias

#define VlcdAdjust 0x70 //0x7F --Vlcd=0.6VDD,Seg Pin,enable internal voltage

#define Blink 0xC0 //关闭闪烁

//IIC所有操作函数
void IIC_Init(void); //初始化IIC的IO口
void IIC_Start(void); //发送IIC开始信号
void IIC_Stop(void); //发送IIC停止信号
void IIC_Send_Byte(u8 txd); //IIC发送一个字节
u8 IIC_Read_Byte(unsigned char ack);//IIC读取一个字节
u8 IIC_Wait_Ack(void); //IIC等待ACK信号
void IIC_Ack(void); //IIC发送ACK信号
void IIC_NAck(void); //IIC不发送ACK信号

void IIC_Write_One_Byte(u8 daddr,u8 addr,u8 data);
u8 IIC_Read_One_Byte(u8 daddr,u8 addr);
void ht16c22_init(void);
void ht16c22_display(unsigned char add,unsigned char dat);
void ht16c22_test(void);
unsigned char ht16c22_read(unsigned add);
void ht16c22_dis_num(int num);
void ht16c22_dis_staus(int num);
void ht16c22_dis_bat(int num);
void ht16c22_dis_month2(int num);

/////////////////////////////////////////////////////////////////////////////////
void status_digital(int num);//--------2
void signal_digital(int num);//--------4
void battery_digital(int num);//-------4
void clock_digital(void);
void first_digital(int num);//月1------2
void first_digital_dismiss(void );//月份1不显示
void second_digital(int num);//月2\----------10
void second_digital_dismiss(void);//月份2不显示
void month_digital(void);
void third_digital(int num);//day1----4
void third_digital_dismiss(void );//day1 dismiss
void fourth_digital(int num);//day2--------9
//day2 dismiss
void fourth_digital_dismiss(void );
//hour1
void fifth_digital(int num);//------3
void fifth_digital_dismiss(void );//hour1 dismiss

void sixth_digital(int num);//hour2--------9
void sixth_digital_dismiss(void);//hour2 dismiss
void mao_digital(void );
//minute1 dismiss
void seventh_digital_dismiss(void );
//minute1
void seventh_digital(int num);//---------6
//minute2
void eight_digital(int num);//-----------9
void eight_digital_dismiss(void);//minute dismiss
void nineth_digital(int num);//hum2-------9
void nineth_o_digital(void );
void nineth_dismiss_digital(void );

//hum3
void tenth_digital(int num);//--------9
void tenth_digital_dismiss(void);
void tenth_ON_digital(void);
void the_on_off_digital(int num);//------2
void tenth_OF_digital(void );
//hum4
void eleventh_digital(int num);//-------9
void eleventh_digital_dismiss(void );
//hum fuhao
void temp_digital(int num);//--------9
void dot_digital(int num);//-----2
void minus_digital(void );
void set_above_digital(int num);//---2
void set_alarm_digital(int num);//----2
void set_speaker_digital(int num);//----2
//tem2
void temp_high_digital(int num);//-------9
void temp_high_digital_off(void );
void temp_Middle_digital(int num);//tem3//---------9
void temp_Middle_digital_off(void );
//tem4
void temp_Last_digital(int number);//--------9
void temp_Last_digital_off(void );
void dot_temp_digital(int num);//-----2
void temp_digital_new(int num);//-----2
void humid_digital_new(int num);//---2
void addr_digital(int number);//----9
void addr_digital_dismiss(void);
void baud_digital(int num);//----9
void baud_digital_dismiss(void);
void temp_minus_digital(int num);//--------2
void print_digital(int num);//---2
void log_digital(int num);//--------2
void erase_digital(int num);//--------2
#endif

iic.c文件内容为:

/********************************copyright ythuitong by wit_yu

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top