Page 1
1/**
2******************************************************************************
3*FileName:I2C.c
4*Description:Thisfileprovidescodefortheconfiguration
5*oftheI2Cinstances.
6*Auther:Dhg
7*Date
:
2017‐11‐30
8
9
*Note
:该程序基于
STM32HAL
库的基础上,使用硬件
I2C
驱动
MCP3421
18位高精度AD,附带的子函数可实现MCP3421初始化,
10
读取电压电流通道的
AD
值!
11******************************************************************************
12
13/*Includes‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐*/
14#include "i2c.h"
15
16#include "gpio.h"
17
18/*USERCODEBEGIN0*/
19#include "tim.h"
20#include "adc.h"
21#include "usart.h"
22
23#define MCP3421A0T_W 0xD0
24#define MCP3421A1T_W 0xD2
25#define MCP3421A0T_R 0xD1
26#define MCP3421A1T_R 0xD3
27
28/*USERCODEEND0*/
29
30I2C_HandleTypeDef hi2c1;
31
32/*I2C1initfunction*/
33void MX_I2C1_Init(void)
34{
35
36 hi2c1.Instance = I2C1;
37 hi2c1.Init.Timing = 0x20303E5D;
38 hi2c1.Init.OwnAddress1 = 0;
39 hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
40 hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE ;
41 hi2c1.Init.OwnAddress2 = 0;
42 hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
43 hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE ;
44 hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
45 if (HAL_I2C_Init(&hi2c1)!=HAL_OK)
46 {
47 _Error_Handler(__FILE__, __LINE__);
48 }
49
50 /**ConfigureAnaloguefilter
51*/
52 if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE)!=HAL_OK)
53 {
54 _Error_Handler(__FILE__, __LINE__);
55 }
56
57 /**ConfigureDigitalfilter
58*/
59 if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0)!=HAL_OK)
60 {
61 _Error_Handler(__FILE__, __LINE__);