规范第一版超声与红外代码函数,红外可以添加更多函数,待学习。同时修改CMakeList在生成bin与hex文件时的命名,以便区分。CMakeList与.h头文件的联动尚未实现。
This commit is contained in:
@@ -1,116 +0,0 @@
|
||||
#ifndef GD32E23X_HW_I2C_H
|
||||
#define GD32E23X_HW_I2C_H
|
||||
|
||||
// #define I2C1_ENABLE
|
||||
|
||||
#define I2C0_BUS_RCU RCU_I2C0
|
||||
|
||||
#define I2C0_GPIO_RCU RCU_GPIOF
|
||||
#define I2C0_GPIO_PORT GPIOF
|
||||
#define I2C0_GPIO_SDA_PIN GPIO_PIN_0
|
||||
#define I2C0_GPIO_SCL_PIN GPIO_PIN_1
|
||||
#define I2C0_GPIO_AF GPIO_AF_1
|
||||
|
||||
#define I2C0_SPEED 400000U
|
||||
#define I2C0_DCTY I2C_DTCY_2
|
||||
#define I2C0_ADDR7 0xA0
|
||||
|
||||
#ifdef I2C1_ENABLE
|
||||
#define I2C1_BUS_RCU RCU_I2C1
|
||||
|
||||
#define I2C1_GPIO_RCU RCU_GPIOA
|
||||
#define I2C1_GPIO_PORT GPIOA
|
||||
#define I2C1_GPIO_SDA_PIN GPIO_PIN_1
|
||||
#define I2C1_GPIO_SCL_PIN GPIO_PIN_0
|
||||
#define I2C1_GPIO_AF GPIO_AF_4
|
||||
|
||||
#define I2C1_SPEED 400000U
|
||||
#define I2C1_DCTY I2C_DTCY_2
|
||||
#define I2C1_ADDR7 0xA1
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define I2C_TIME_OUT (uint16_t)(5000)
|
||||
#define I2C_OK 1
|
||||
#define I2C_FAIL 0
|
||||
#define I2C_END 1
|
||||
|
||||
typedef enum {
|
||||
I2C_START = 0,
|
||||
I2C_SEND_ADDR,
|
||||
I2C_CLEAR_ADDRESS_FLAG,
|
||||
I2C_TRANSMIT_DATA,
|
||||
I2C_STOP
|
||||
} i2c_process_enum;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint32_t i2c_gpio_rcu;
|
||||
uint32_t i2c_gpio_port;
|
||||
uint32_t i2c_gpio_sda_pin;
|
||||
uint32_t i2c_gpio_scl_pin;
|
||||
uint32_t i2c_gpio_af;
|
||||
uint32_t i2c_speed;
|
||||
uint32_t i2c_dcty;
|
||||
uint32_t i2c_addr7;
|
||||
}i2c_parameter_struct;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* \brief Return codes for IIC APIs.
|
||||
* @{
|
||||
*/
|
||||
#define IIC_SUCCESS 0
|
||||
#define IIC_INVALID_ARGUMENT 1
|
||||
#define IIC_ARBITRATION_LOST 2
|
||||
#define IIC_NO_CHIP_FOUND 3
|
||||
#define IIC_RECEIVE_OVERRUN 4
|
||||
#define IIC_RECEIVE_NACK 5
|
||||
#define IIC_SEND_OVERRUN 6
|
||||
#define IIC_SEND_NACK 7
|
||||
#define IIC_BUSY 8
|
||||
#define IIC_ERROR_TIMEOUT 9
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
void i2c_master_initialize1(void);
|
||||
void i2c_master_initialize3(void);
|
||||
void i2c_master_init(void);
|
||||
void i2c_master_deinit1(void);
|
||||
void i2c_master_deinit3(void);
|
||||
|
||||
uint8_t i2c_master_read_register1(unsigned char Address, unsigned char RegisterAddr, unsigned short RegisterLen, unsigned char *RegisterValue);
|
||||
uint8_t i2c_master_read_register3(unsigned char Address, unsigned char RegisterAddr, unsigned short RegisterLen, unsigned char *RegisterValue);
|
||||
|
||||
uint8_t i2c_master_read_register1_raw(unsigned char Address, unsigned short len, unsigned char *data);
|
||||
uint8_t i2c_master_read_register3_raw(unsigned char Address, unsigned short len, unsigned char *data);
|
||||
|
||||
|
||||
uint8_t i2c_master_write_register1(unsigned char Address, unsigned char RegisterAddr, unsigned short RegisterLen, unsigned char *RegisterValue);
|
||||
uint8_t i2c_master_write_register3(unsigned char Address, unsigned char RegisterAddr, unsigned short RegisterLen, unsigned char *RegisterValue);
|
||||
|
||||
uint8_t i2c_master_write_register1_raw(unsigned char Address, unsigned short len, unsigned char *data);
|
||||
uint8_t i2c_master_write_register3_raw(unsigned char Address, unsigned short len, unsigned char *data);
|
||||
|
||||
|
||||
void i2c0_master_init(void);
|
||||
|
||||
|
||||
int read_ir_mlx90614(void);
|
||||
|
||||
void i2c_struct_para_init(i2c_parameter_struct* initpara);
|
||||
void i2c_init(uint32_t i2c_periph, i2c_parameter_struct* initpara);
|
||||
void i2c0_config(void);
|
||||
|
||||
|
||||
#endif /* GD32E23X_HW_I2C_H */
|
@@ -23,7 +23,10 @@
|
||||
#define REG_ADDR_OBJ_TEMP 0x07
|
||||
#define REG_ADDR_AMB_TEMP 0x06
|
||||
|
||||
/* function declarations */
|
||||
/* this function configures I2C Peripheral & GPIO AF for I2C */
|
||||
void MLX90614_I2CConfig(void);
|
||||
/* this function reads object temperature */
|
||||
uint16_t MLX90614_GetObjectTemperature(void);
|
||||
|
||||
#endif //MLX90614_H
|
||||
|
@@ -11,9 +11,11 @@
|
||||
// #define POWER_SUPPLY_24V
|
||||
|
||||
#ifdef POWER_SUPPLY_12V
|
||||
#define POWER_VOLTAGE "12V"
|
||||
#define TIME_CORRECTION_US 250
|
||||
#define CAPTURE_VALUE_MAX 515
|
||||
#elif defined(POWER_SUPPLY_24V)
|
||||
#define POWER_VOLTAGE "24V"
|
||||
#define TIME_CORRECTION_US 230
|
||||
#define CAPTURE_VALUE_MAX 550
|
||||
#else
|
||||
@@ -63,13 +65,13 @@
|
||||
|
||||
void led_config(void);
|
||||
void usart_config(void);
|
||||
void ultrasonic_config(void);
|
||||
void ultrasonic_transmit_config(void);
|
||||
void ultrasonic_pwm_out_cycles(const uint8_t cycles);
|
||||
void ultrasonic_transmit_delay(const uint16_t micro_second);
|
||||
void receive_exti_config(void);
|
||||
void ultrasonic_echo_timer_config(void);
|
||||
void ultrasonic_receive_config(void);
|
||||
uint16_t calculate_distance(uint32_t us_value);
|
||||
void UltraSonic_GPIO_Config(void);
|
||||
void UltraSonic_Transmit_Config(void);
|
||||
void UltraSonic_PwmOut_Cycles(const uint8_t cycles);
|
||||
void UltraSonic_Transmit_Delay(const uint16_t micro_second);
|
||||
void UltraSonic_ReceExti_Config(void);
|
||||
void UltraSonic_EchoTimer_Config(void);
|
||||
void UltraSonic_Receive_Config(void);
|
||||
uint16_t UltraSonic_CalcDistance(uint32_t us_value);
|
||||
|
||||
#endif //ULTRASONIC_DRIVER_H
|
||||
|
Reference in New Issue
Block a user