130 lines
3.5 KiB
C
130 lines
3.5 KiB
C
#ifndef DEMO_H
|
||
#define DEMO_H
|
||
#include "type_define.h"
|
||
#include <board_cfg.h>
|
||
#include "hk32f030m.h"
|
||
#include "stdio.h"
|
||
|
||
/*----------------------------------------------------------------
|
||
IIC Configuration
|
||
*/
|
||
#define SOFT_IIC_ENABLED 1
|
||
#if (SOFT_IIC_ENABLED)
|
||
void IIC_SF_Init(void);
|
||
u8 IIC_SF_Send_Byte(u8 ord, u8 data);
|
||
u8 IIC_SF_Send(u8 ord, u8 *data, u32 len);
|
||
#endif
|
||
#define HW_IIC_ENABLED 0
|
||
|
||
/*----------------------------------------------------------------
|
||
SPI Configuration
|
||
*/
|
||
#define SPI_HW_ENABLED 1
|
||
#if (SPI_HW_ENABLED)
|
||
u8 SPI_HW_Send(u8 chr);
|
||
u8 SPI_HW_Transfer(u8 chr, u8 *data);
|
||
void SPI_HW_Init(void);
|
||
#endif
|
||
|
||
/*----------------------------------------------------------------
|
||
ST7735S Configuration
|
||
*/
|
||
#define ST7735S_ENABLED 1
|
||
#define ST7735S_SHOW_ASC16 1
|
||
#if(SPI_HW_ENABLED==0)
|
||
#error("ST7735 要开启spi")
|
||
#endif
|
||
#if ST7735S_ENABLED
|
||
void LCD_Init(void);
|
||
|
||
|
||
|
||
#if ST7735S_SHOW_ASC16
|
||
void LCD_ShowChar16(u32 x,u32 y,u8 chr,u16 bkcolor,u16 color);
|
||
u8 LCD_ShowString(u8 *chr,u16 bkcolor,u16 color);
|
||
u8 LCD_SetCharPos(u32 x,u32 y);
|
||
void LCD_ShowPic(u8 *pic, u16 bkcolor, u16 color);
|
||
#endif
|
||
#endif
|
||
|
||
/*----------------------------------------------------------------
|
||
Flash Configuration
|
||
*/
|
||
u16 Flash_ReadID(void);
|
||
u8 Flash_Init(void);
|
||
|
||
/*----------------------------------------------------------------
|
||
uart configuration
|
||
*/
|
||
void USART_Config(void);
|
||
|
||
/*----------------------------------------------------------------
|
||
GPIO interface
|
||
*/
|
||
/**
|
||
* 推挽输出:HAL_GPIO_Init(GPIOA, GPIO_Pin_1,GPIO_Mode_OUT,GPIO_PuPd_NOPULL,GPIO_OType_PP)
|
||
* 开漏输出: HAL_GPIO_Init(GPIOA, GPIO_Pin_1,GPIO_Mode_OUT,GPIO_PuPd_NOPULL,GPIO_OType_OD)
|
||
* 上拉输入:HAL_GPIO_Init(GPIOA, GPIO_Pin_1,GPIO_Mode_IN,GPIO_PuPd_UP,GPIO_OType_OD)
|
||
* 下拉输入:HAL_GPIO_Init(GPIOA, GPIO_Pin_1,GPIO_Mode_IN,GPIO_PuPd_DOWN,GPIO_OType_OD)
|
||
*/
|
||
void HAL_GPIO_Init(GPIO_TypeDef *port, u32 pin, u32 mode, u32 pull, u32 type);
|
||
// GPIO output
|
||
// port:GPIOA-GPIOD,pin:GPIO_Pin_0-GPIO_Pin_7
|
||
#define GPIO_OUT_H(port, pin) \
|
||
{ \
|
||
port->BSRR = pin; \
|
||
};
|
||
// port:GPIOA-GPIOD,pin:GPIO_Pin_0-GPIO_Pin_7
|
||
#define GPIO_OUT_L(port, pin) \
|
||
{ \
|
||
port->BRR = pin; \
|
||
};
|
||
// port:GPIOA-GPIOD,pin:GPIO_Pin_0-GPIO_Pin_7
|
||
#define GPIO_OUT_TOGGLE(port, pin) \
|
||
{ \
|
||
port->ODR ^= pin; \
|
||
}
|
||
// GPIO pull up and down
|
||
// port:GPIOA-GPIOD,pin:0-7
|
||
#define GPIO_PULL_UP(port, pin) \
|
||
{ \
|
||
port->PUPDR = 1 << (pin * 2) | port->PUPDR; \
|
||
}
|
||
// port:GPIOA-GPIOD,pin:0-7
|
||
#define GPIO_PULL_DOWN(port, pin) \
|
||
{ \
|
||
port->PUPDR = 2 << (pin * 2) | port->PUPDR; \
|
||
}
|
||
// port:GPIOA-GPIOD,pin:0-7
|
||
#define GPIO_PULL_NULL(port, pin) \
|
||
{ \
|
||
port->PUPDR = 0 << (pin * 2) | port->PUPDR; \
|
||
}
|
||
// port:GPIOA-GPIOD,pin:0-7
|
||
#define GPIO_READ(port, pin) ((port->IDR >> pin) & 1)
|
||
|
||
|
||
|
||
void EEPROM_WriteByte(uint32_t offset, uint8_t data_in);
|
||
void EERPOM_ReadByte(uint32_t offset,uint8_t *data_out);
|
||
/*----------------------------------------------------------------
|
||
Bit
|
||
*/
|
||
#define Bit15 0x8000
|
||
#define Bit14 0x4000
|
||
#define Bit13 0x2000
|
||
#define Bit12 0x1000
|
||
#define Bit11 0x800
|
||
#define Bit10 0x400
|
||
#define Bit9 0x200
|
||
#define Bit8 0x100
|
||
#define Bit7 0x80
|
||
#define Bit6 0x40
|
||
#define Bit5 0x20
|
||
#define Bit4 0x10
|
||
#define Bit3 0x08
|
||
#define Bit2 0x04
|
||
#define Bit1 0x02
|
||
#define Bit0 0x01
|
||
#endif
|