#ifndef _OLED2_H #define _OLED2_H #define SSD1306_I2C_ADDR 0x78 #define MAX_COLUMN 128 #define MAX_ROW 64 extern char oled_p; extern char oled_s[2]; extern char oled_s_motorok[2]; extern char oled_s_magnetok[2]; extern char oled_en; extern unsigned int step_temp[2]; extern char run_mode_temp[2]; extern int direc_temp[2]; extern char magnet_select[2]; extern char magnet_s_ok[2]; extern char magnet_motor_sw; extern char disp_new; void OLED2_Send(unsigned char *data, unsigned char len); void OLED2_Init(void); void OLED_DisplayTest(void); void OLED_MenuTest(void); void OLED_ShowCN(unsigned char x,unsigned char y,unsigned char index,unsigned char color); void OLED_ShowString(unsigned char x,unsigned char y,char *str,unsigned char Char_Size,unsigned char color); void OLED_ShowChar(unsigned char x,unsigned char y,unsigned char chr,unsigned char Char_Size,unsigned char color); void OLED_Clear(void) ; void OLED_DisplayOff(void); void OLED_DisplayOn(void); void OLED_SetPos(unsigned char x, unsigned char y); void SSD1306_WriteData(unsigned char data); void SSD1306_WriteCmd(unsigned char cmd); void OLED_Menu_New(void); /*******************************************ģ��I2C***********************************************************/ #include #include "main.h" #define BSP_I2C_WR 0 /* д����bit */ #define BSP_I2C_RD 1 /* ������bit */ /* ����I2C�������ӵ�GPIO�˿�ʱ�ӿ��� */ #define I2Cx_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() #define I2Cx_SCL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() /* ����I2C�������ӵ�GPIO�˿�, �û�ֻ��Ҫ�޸�����3�д��뼴������ı�SCL��SDA������ */ #define BSP_GPIO_PORT_I2C GPIOB /* GPIO�˿� */ #define BSP_I2C_SCL_PIN GPIO_PIN_6 /* ���ӵ�SCLʱ���ߵ�GPIO */ #define BSP_I2C_SDA_PIN GPIO_PIN_7 /* ���ӵ�SDA�����ߵ�GPIO */ /* �����дSCL��SDA�ĺ꣬�����Ӵ���Ŀ���ֲ�ԺͿ��Ķ��� */ //#if 0 /* �������룺 1 ѡ��GPIO�Ŀ⺯��ʵ��IO��д */ //#define BSP_I2C_SCL_1() digitalH(BSP_GPIO_PORT_I2C, BSP_I2C_SCL_PIN) /* SCL = 1 */ //#define BSP_I2C_SCL_0() digitalL(BSP_GPIO_PORT_I2C, BSP_I2C_SCL_PIN) /* SCL = 0 */ //#define BSP_I2C_SDA_1() digitalH(BSP_GPIO_PORT_I2C, BSP_I2C_SDA_PIN) /* SDA = 1 */ //#define BSP_I2C_SDA_0() digitalL(BSP_GPIO_PORT_I2C, BSP_I2C_SDA_PIN) /* SDA = 0 */ // // //#define BSP_I2C_SDA_READ() GPIO_ReadInputDataBit(BSP_GPIO_PORT_I2C, BSP_I2C_SDA_PIN) /* ��SDA����״̬ */ //#define BSP_I2C_SDA_READ() ((BSP_GPIO_PORT_I2C->IDR & BSP_I2C_SDA_PIN) != 0) /* ��SDA����״̬ */ //#else /* �����֧ѡ��ֱ�ӼĴ�������ʵ��IO��д */ /*��ע�⣺����д������IAR��߼����Ż�ʱ���ᱻ�����������Ż� */ #define BSP_I2C_SCL_1() HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_SET) //BSP_GPIO_PORT_I2C->BSRR = (uint32_t)BSP_I2C_SCL_PIN /* SCL = 1 */ #define BSP_I2C_SCL_0() HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_RESET) //BSP_GPIO_PORT_I2C->BSRR = (uint32_t)BSP_I2C_SCL_PIN << 16U /* SCL = 0 */ #define BSP_I2C_SDA_1() HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET) //BSP_GPIO_PORT_I2C->BSRR = (uint32_t)BSP_I2C_SDA_PIN /* SDA = 1 */ #define BSP_I2C_SDA_0() HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET) //BSP_GPIO_PORT_I2C->BSRR = (uint32_t)BSP_I2C_SDA_PIN << 16U /* SDA = 0 */ #define BSP_I2C_SDA_READ() HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_7) //((BSP_GPIO_PORT_I2C->IDR & BSP_I2C_SDA_PIN) != 0) /* ��SDA����״̬ */ //#endif ///* ֱ�Ӳ����Ĵ����ķ�������IO */ //#define digitalH(p, i) \ // { \ // p->BSRR = i; \ // } // ����Ϊ�ߵ�ƽ //#define digitalL(p, i) \ // { \ // p->BSRR = (uint32_t)i << 16; \ // } // ����͵�ƽ void i2c_CfgGpio(void); void i2c_Start(void); void i2c_Stop(void); void i2c_SendByte(uint8_t _ucByte); uint8_t i2c_ReadByte(void); uint8_t i2c_WaitAck(void); void i2c_Ack(void); void i2c_NAck(void); /*******************************************ģ��I2C***********************************************************/ #endif