This repository has been archived on 2024-12-31. You can view files and clone it, but cannot push or open issues or pull requests.
mfps/App/Inc/oled2.h

104 lines
4.5 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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);
/*******************************************ģ<><C4A3>I2C***********************************************************/
#include <inttypes.h>
#include "main.h"
#define BSP_I2C_WR 0 /* д<><D0B4><EFBFBD><EFBFBD>bit */
#define BSP_I2C_RD 1 /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bit */
/* <20><><EFBFBD><EFBFBD>I2C<32><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>GPIO<49>˿<EFBFBD>ʱ<EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD> */
#define I2Cx_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define I2Cx_SCL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
/* <20><><EFBFBD><EFBFBD>I2C<32><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>GPIO<49>˿<EFBFBD>, <20>û<EFBFBD>ֻ<EFBFBD><D6BB>Ҫ<EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EBBCB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>SCL<43><4C>SDA<44><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define BSP_GPIO_PORT_I2C GPIOB /* GPIO<49>˿<EFBFBD> */
#define BSP_I2C_SCL_PIN GPIO_PIN_6 /* <20><><EFBFBD>ӵ<EFBFBD>SCLʱ<4C><CAB1><EFBFBD>ߵ<EFBFBD>GPIO */
#define BSP_I2C_SDA_PIN GPIO_PIN_7 /* <20><><EFBFBD>ӵ<EFBFBD>SDA<44><41><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>GPIO */
/* <20><><EFBFBD><EFBFBD><EFBFBD>дSCL<43><4C>SDA<44>ĺ꣬<C4BA><EAA3AC><EFBFBD><EFBFBD><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>ֲ<EFBFBD>ԺͿ<D4BA><CDBF>Ķ<EFBFBD><C4B6><EFBFBD> */
//#if 0 /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺 1 ѡ<><D1A1>GPIO<49>Ŀ⺯<C4BF><E2BAAF>ʵ<EFBFBD><CAB5>IO<49><4F>д */
//#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) /* <20><>SDA<44><41><EFBFBD><EFBFBD>״̬ */
//#define BSP_I2C_SDA_READ() ((BSP_GPIO_PORT_I2C->IDR & BSP_I2C_SDA_PIN) != 0) /* <20><>SDA<44><41><EFBFBD><EFBFBD>״̬ */
//#else /* <20><><EFBFBD><EFBFBD><EFBFBD>֧ѡ<D6A7><D1A1>ֱ<EFBFBD>ӼĴ<D3BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>IO<49><4F>д */
/*<2A><>ע<EFBFBD><EFBFBD><E2A3BA><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IAR<41><52>߼<EFBFBD><DFBC><EFBFBD><EFBFBD>Ż<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><E1B1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD> */
#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) /* <20><>SDA<44><41><EFBFBD><EFBFBD>״̬ */
//#endif
///* ֱ<>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO */
//#define digitalH(p, i) \
// { \
// p->BSRR = i; \
// } // <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
//#define digitalL(p, i) \
// { \
// p->BSRR = (uint32_t)i << 16; \
// } // <20><><EFBFBD><EFBFBD>͵<EFBFBD>ƽ
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);
/*******************************************ģ<><C4A3>I2C***********************************************************/
#endif