STM32F407 硬件IIC驱动MCP4017 数字电位器
生活随笔
收集整理的這篇文章主要介紹了
STM32F407 硬件IIC驱动MCP4017 数字电位器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
STM32F407硬件IIC的應用驅動從機設備
文章目錄
- STM32F407硬件IIC的應用驅動從機設備
- 前言
- 1、STM32F407的硬件IIC使用步驟
- 1 IIC硬件引腳接口初始化.
- 2、MCP4017使用說明
- 2.1 電位器mcp4017地址.
- 2.1 電位器mcp4017寫時序.
- 2.2 電位器mcp4017讀時序.
- 3 注意事項
- 總結
前言
MCP4017是一款可以通過IIC接口進行配置的可調電位器,此電位器有128個可配值.因為項目需要我們需要使用MCP4017調節電阻值.來作為其他部分電路的外圍電路部分,可在調試的時候靈活配置.
1、STM32F407的硬件IIC使用步驟
1 IIC硬件引腳接口初始化.
首先需要初始化IIC引腳的SCK 和SDA 的模式為GPIO_Mode_AF,然后需要初始化IIC的配置寄存器,此過程固件庫已經幫忙封裝成接口,我們只需要調用接口配置即可.我們需要深入了解底層原理,可通過STM32f407手冊對照相關寄存器理解硬件電路. void I2C3_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;I2C_InitTypeDef I2C_InitStructure;RCC_ClocksTypeDef rcc_clocks;/* GPIO Peripheral clock enable */RCC_AHB1PeriphClockCmd(IIC_SDA_GPIO_CLK|IIC_SCL_GPIO_CLK, ENABLE);/*i2c3 Peripheral clock enable */RCC_APB1PeriphClockCmd(IIC_CLK, ENABLE);/*I2C3 configuration*/GPIO_PinAFConfig(IIC_SDA_PORT, IIC_SDA_PINSOURCE, IIC_SDA_AF); GPIO_PinAFConfig(IIC_SCL_PORT, IIC_SCL_PINSOURCE, IIC_SCL_AF);// Pc9: I2C_SDAGPIO_InitStructure.GPIO_Pin = IIC_SDA_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;GPIO_Init(IIC_SDA_PORT, &GPIO_InitStructure);//PA8: I2C_SCL GPIO_InitStructure.GPIO_Pin = IIC_SCL_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;GPIO_Init(IIC_SCL_PORT, &GPIO_InitStructure);/* I2C Struct Initialize */I2C_DeInit(IIC);I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;I2C_InitStructure.I2C_OwnAddress1 = 0x01;I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;I2C_InitStructure.I2C_ClockSpeed = 50000;I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;I2C_Init(IIC, &I2C_InitStructure);/* I2C Initialize */I2C_Cmd(IIC, ENABLE);I2C_AcknowledgeConfig(IIC, ENABLE);}2、MCP4017使用說明
2.1 電位器mcp4017地址.
先看手冊找到設備地址:
從MCP4017手冊中可以看到7位地址是0x27 ,不包括讀寫位.
2.1 電位器mcp4017寫時序.
從圖可看到,主機通過IIC接口向MCP4017 寫一個字節 時序: 從機地址+寫命令+ 要寫的數據.
STM32F407作為主機寫的代碼如下所示:
以下代碼經驗證可以正常寫數據到MCP4017.
2.2 電位器mcp4017讀時序.
從圖可看到,主機通過IIC接口向MCP4017 讀一個字節 時序: 從機地址+讀命令 后從機返回讀取的數據.
STM32F407作為主機讀的代碼如下所示:
3 注意事項
本項目使用的是MCP4017 不要和MCP40D17搞混了兩者都屬于數字電位器但是兩者的讀寫時序不一樣要注意對照相應的datasheet的時序去修改代碼.否則會讀寫不成功.
總結
以上就是本人調試MCP4017的過程記錄.如有錯誤望指出.
總結
以上是生活随笔為你收集整理的STM32F407 硬件IIC驱动MCP4017 数字电位器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一文普及工业控制、PLC
- 下一篇: VPP-20.09版本安装教程(离线版)