赞
踩
2️⃣ 5V锂电池
3️⃣ 5V 0.2A直流风扇
1️⃣ 主控芯片:STM32F103C8T6
2️⃣ 电机驱动芯片:DRV8833
3️⃣ 温度传感器:GX18B20
4️⃣ 5V转3.3V稳压芯片:AMS1117-3.3
1️⃣ 用户充电接口:Type-C
2️⃣ 充电连接口:MX1.25mm针座接口
3️⃣ 放电接口:XH2.54mm2P接口
4️⃣ 风扇接口:SH1.0mm4P母座
5️⃣ 下载程序接口:2.54mm单排弯针
数量 | 说明 | 值 | 主要类别 | 次要类别 |
---|---|---|---|---|
2 | 22pF | 22pF | 电容 | 贴片电容(MLCC) |
8 | 100nF | 100nF | 电容 | 贴片电容(MLCC) |
2 | 22uF | 22uF | 电容 | 贴片型铝电解电容 |
1 | 2.2uF | 2.2uF | 电容 | 贴片电容(MLCC) |
1 | 10nF | 10nF | 电容 | 贴片电容(MLCC) |
1 | HX25003-2WAP | / | 连接器 | 线对板/线对线连接器 |
1 | A1251WR-2P | / | 连接器 | 线对板/线对线连接器 |
1 | PZ254V-11-04P | / | 连接器 | 排针 |
1 | NCD0805R1 | / | 光耦/LED/数码管/光电器件 | 发光二极管/LED |
1 | 1MΩ | 1MΩ | 电阻 | 贴片电阻 |
2 | 10kΩ | 10kΩ | 电阻 | 贴片电阻 |
1 | 510Ω | 510Ω | 电阻 | 贴片电阻 |
1 | TS-1101-C-W | / | 按键/开关 | 轻触开关 |
1 | STM32F103C8T6 | / | 单片机/微控制器 | 单片机(MCU/MPU/SOC) |
1 | DS18B20U | / | 传感器 | 温度传感器 |
1 | AMS1117-3.3 | / | 电源芯片 | 线性稳压器(LDO) |
1 | DRV8833PWP | / | 电源芯片 | 电机驱动芯片 |
1 | U262-161N-4BVC11 | 连接器 | USB连接器 | |
1 | 8MHz | 8MHz | 晶振/振荡器/谐振器 | 无源晶振 |
1 | AFC10-S04QCA-00 | 连接器 | 线对板/线对线连接器 |
#include "delay.h" #include "sys.h" #include "led.h" #include "GX18B20.h" #include "usart.h" //#include "DS18B20.h" int main(void) { float temperature = 0; delay\_init(); uart\_init(9600); LED\_Init(); DS18B20\_Init(); IN1 = 0; IN2 = 0; MOTOR = 0; while(1) { temperature = DS18B20\_GetTemperature(); //在此处处理温度值,例如打印到串口或显示屏 #if 1 IN1 = 1; IN2 = 0; if(temperature > 35.00) { BEEP =0; //PC13 MOTOR = 1; } else { BEEP =1; //PC13 MOTOR = 0; } #else MOTOR = 1; #endif printf("温度=%.2f\r\n",temperature); delay\_ms(500); delay\_ms(500); } }
#include "GX18B20.h" #include "delay.h" // 初始化函数 void GPIO\_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; // 使能GPIO时钟 RCC\_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 配置引脚为推挽输出 GPIO_InitStructure.GPIO_Pin = GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO\_Init(GPIO_PORT, &GPIO_InitStructure); // 默认拉低总线 GPIO\_ResetBits(GPIO_PORT, GPIO_PIN); } // 发送复位脉冲 void OW\_Reset(void) { // 拉低总线至少480us GPIO\_ResetBits(GPIO_PORT, GPIO_PIN); delay\_us(500); // 释放总线 GPIO\_SetBits(GPIO_PORT, GPIO_PIN); delay\_us(60); // 等待设备拉低总线 while (GPIO\_ReadInputDataBit(GPIO_PORT, GPIO_PIN) == Bit_RESET); } // 发送一个字节 void OW\_WriteByte(uint8\_t byte) { uint8\_t i; for (i = 0; i < 8; i++) { // 拉低总线至少1us GPIO\_ResetBits(GPIO_PORT, GPIO_PIN); delay\_us(2); // 发送数据位 if (byte & 0x01) { GPIO\_SetBits(GPIO_PORT, GPIO_PIN); } else { GPIO\_ResetBits(GPIO_PORT, GPIO_PIN); } // 拉高总线,释放总线 delay\_us(60); GPIO\_SetBits(GPIO_PORT, GPIO_PIN); delay\_us(2); // 移位 byte >>= 1; } } // 读取一个字节 uint8\_t OW\_ReadByte(void) { uint8\_t byte = 0; uint8\_t i; for ( i = 0; i < 8; i++) { // 拉低总线至少1us GPIO\_ResetBits(GPIO_PORT, GPIO_PIN); delay\_us(2); // 拉高总线,释放总线 GPIO\_SetBits(GPIO_PORT, GPIO_PIN); delay\_us(2); // 读取数据位 if (GPIO\_ReadInputDataBit(GPIO_PORT, GPIO_PIN)) { byte |= (1 << i); } // 等待余下的时隙结束 delay\_us(60); } return byte; } // 初始化函数 void DS18B20\_Init(void) { // 配置GPIO GPIO\_Configuration(); } // 获取温度 float DS18B20\_GetTemperature(void) { uint8\_t temp_LSB, temp_MSB; int16\_t temp; // 发送复位脉冲 OW\_Reset(); // 发送跳过ROM指令 OW\_WriteByte(0xCC); // 发送温度转换指令 OW\_WriteByte(0x44); // 等待转换完成 while (!GPIO\_ReadInputDataBit(GPIO_PORT, GPIO_PIN)); // 发送复位脉冲 OW\_Reset(); // 发送跳过ROM指令 OW\_WriteByte(0xCC); // 发送读取温度指令 OW\_WriteByte(0xBE); // 读取温度数据 temp_LSB = OW\_ReadByte(); temp_MSB = OW\_ReadByte(); // 计算温度值 temp = (temp_MSB << 8) | temp_LSB; return (float)temp / 16.0f; }
#ifndef \_\_GX18B20\_H #define \_\_GX18B20\_H #include "sys.h" #include "stdlib.h" #include "stm32f10x.h" #include "delay.h" // 定义引脚号 #define GPIO\_PORT GPIOA #define GPIO\_PIN GPIO\_Pin\_0 extern void DS18B20\_Init(void); extern float DS18B20\_GetTemperature(void); #endif
#include "led.h" void LED\_Init(void) { //LED GPIO_InitTypeDef GPIO_InitStructure; RCC\_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE); //使能3端口时钟 GPIO\_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //GPIO\_PinRemapConfig(GPIO\_Remap\_SWJ\_JTAGDisable, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度50MHz GPIO\_Init(GPIOC, &GPIO_InitStructure); //初始化GPIOC GPIO\_SetBits(GPIOC,GPIO_Pin_14); //蜂鸣器 RCC\_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE); //使能3端口时钟 GPIO\_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度50MHz GPIO\_Init(GPIOC, &GPIO_InitStructure); //初始化GPIOC GPIO\_SetBits(GPIOC,GPIO_Pin_13); **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。** **深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!** **因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**    **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**   **由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新** **如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)** <img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" /> # 最后 **资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~** **你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!** )] **由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新** **如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)** <img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" /> # 最后 **资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~** **你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!** **[更多资料点击此处获qu!!](https://bbs.csdn.net/topics/618376385)**
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。