总结 |
您所在的位置:网站首页 › 高精度温度采集模块是什么 › 总结 |
先看这个: 资料 申请软件著作权步骤_正在格式化……-CSDN博客_申请软件著作权 软件著作权的申请流程_正在格式化……-CSDN博客_软著补正邮寄地址 10月17日——10月23日调试总结 1.MAX31865(1)简介 MAX31865是简单易用的热敏电阻至数字输出转换器,优化用于铂电阻温度检测器(RTD)。外部电阻设置RTD灵敏度,高精度Δ- Σ ADC将RTD电阻与基准电阻之比转换为数字输出。MAX31865输入具有高达±45V的过压保护,提供可配置的RTD及电缆开路、短路条件检测。 (2)特点和优点 集成更低系统功耗,简化设计,减少设计周期: 简便的RTD铂电阻之数字转换器; 支持100Ω至1kΩ (0°C时)铂电阻RTD (PT100至PT1000); 兼容于2线、3线和4线传感器连接; SPI兼容接口; 20引脚TQFN和SSOP封装; 高精度设备满足误差预算: 15位ADC分辨率,标称温度分辨率为0.03125°C (随RTD非线性变化); 整个工作条件下,总精度保持在0.5°C (0.05%满量程); 全差分VREF输入; 转换时间:21ms (最大值); 集成故障检测,增加系统稳定性: ±45V输入保护; 故障检测(RTD开路、RTD短路到量程范围以外的电压或 RTD元件短路)。 (3)引脚图和引脚说明 (4)SPI读写数据传输时序图 (5)转换温度原理 (6)内部寄存器 (7)典型应用电路 (8)实际电路图(三线制) 图中的两个红线中的任意一个和蓝线之间即为PT100电阻,二线制时只需要将两根红线中的一根和蓝线接入到电路即可,三线制时需要将三根线都接入电路。 使用TB1621驱动LCD进行显示。 主函数: #include "stm32f10x.h" #include "usart.h" #include "max31865.h" #include "HT1621.h" #include "stm32f10x_gpio.h" #include "spi.h" extern uint8_t Data_Buffer[8]; extern uint8_t DRDY_Status(void); //extern void Inital_MAX31865(void) ; extern uint8_t MAX31865_Config; extern float Temperature; int main(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_DeInit(); //RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA , ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB , ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //PA.8 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽式输出 GPIO_Init(GPIOA, &GPIO_InitStructure); //用PB0读取MAX31865的状态 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //PB.0 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING ; //浮空输入 GPIO_Init(GPIOB, &GPIO_InitStructure); uart_init(9600); printf("\r\nDetect\r\n"); GPIO_ResetBits(GPIOA, GPIO_Pin_8);//set 0 delay_init(); ht1621_GPIO_Init(); ht1621_Init(); lcd_clear();//清屏 SPI1_Init(); Max31865_Init(); while(1) { Temperature = Get_Temperature(); printf("temp=%f\r\n",Temperature); ht1621_TempDisplay(Temperature); } } 5.总结(1)PA4、PA5、PA6、PA7端口可以复用重映像为SPI的CS、SCK、MISO、MOSI,只需要将这四个端口配置为复用推挽输出GPIO_Mode_AF_PP即可: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOA, &GPIO_InitStructure);(2)三线制中MAX31865的5引脚和6引脚应该是连接起来的,之前的PCB上由于马虎未连接; (3)端口的输入模式 GPIO_Mode_AIN:模拟输入模式 GPIO_Mode_IN_FLOATING:浮空输入模式(复位后的状态) GPIO_Mode_IPD:下拉输入模式 GPIO_Mode_IPU :上拉输入模式 (4)端口的输出模式 GPIO_Mode_Out_OD :通用开漏输出模式 GPIO_Mode_Out_PP:通用推挽输出模式 GPIO_Mode_AF_OD :复用开漏输出模式 GPIO_Mode_AF_PP: 复用推挽输出模式 (5) 在输出模式下,有2M、10M、50MHz三种输出速度可选择,这个速度是指I/O端口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关。 GPIO_Speed_10MHz, GPIO_Speed_2MHz, GPIO_Speed_50MHz 代码 有需要请加QQ:1447491726,进行详细的技术交流,共同进步。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |