嵌入式入门工程-简单电子温度计(一)

news/2024/12/16 11:30:32/
  • 先大致确定硬件
    一个stm32f103C8最小系统作控制,DS8B20温度检测模块,8个LED数码管,74HC138D作3位到8位的扩展来作位选择,74HC245作信号放大来驱动数码管显示。

  • 建立工程文件夹SimpleElectronicThermometer,开发keil5,project -> new uvision project,建立一个工程。

  • Select Device for Target 界面选择STMicroelectronics->STM32F1 Series->STM32F103->STM32F103C8

  • 在Target下面Add Group

    1. CMSIS: Cortex Microcontroller Software Interface Standard,微控制器软件接口标准, 来存放CMSIS Cortex-M3 Core Peripheral Access Layer System库 与 CMSIS Cortex-M3 Device Peripheral Access Layer System库。
    2. User: 存放main与自定义中断程序
    3. App:存放项目自定义的库
    4. StdPeriph_Driver: 存放标准外设驱动库
  • 设置好工程的头文件引用目录

  • 写一段GPIO输出来测试工程是否正常

#include "stm32f10x.h"int main(void) {GPIO_InitTypeDef gpioInitVar;/*启用时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);/* 初始化 PA0 引脚 */GPIO_StructInit(&gpioInitVar);gpioInitVar.GPIO_Mode = GPIO_Mode_Out_PP;gpioInitVar.GPIO_Pin = GPIO_Pin_0;gpioInitVar.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA,&gpioInitVar);/* PA0引脚置0 */GPIO_ResetBits(GPIOA,GPIO_Pin_0);while(1);
}

简单说明GPIO的Mode
Stm32的GPIO有8种工作模式

  1. GPIO_Mode_AIN 模拟输入,GPIO会失效,引脚直接接入内部ADC。
  2. GPIO_Mode_IN_FLOATING 浮空输入,如果在该引脚悬空(无信号输入)的情况下,读取该端口的电平是不确定的。
  3. GPIO_Mode_IPD 下拉输入 ,悬空时默认为低电平。
  4. GPIO_Mode_IPU 上拉输入 ,悬空时默认为高电平。
  5. GPIO_Mode_Out_OD 开漏输出,当CPU输出逻辑0时,I/O端口输出低电平;而当CPU输出逻辑1时,该引脚处于开漏,也就是浮空状态(高阻态)。
  6. GPIO_Mode_Out_PP 推挽输出,当CPU输出逻辑0时,I/O端口输出低电平,而当CPU输出逻辑1时,I/O端口输出高电平。
  7. GPIO_Mode_AF_OD 复用开漏输出。
  8. GPIO_Mode_AF_PP 复用推挽输出。
  • 接着来测试下usart 串口输出是否正常,工程中使用串口输出日志到电脑来调试程序。
    第二节待续

http://www.ppmy.cn/news/1555575.html

相关文章

macOS:安装第三方软件

基于安全性考虑,Mac 系统通常不允许安装那些从网络上下载下来的第三方软件包。 比如,在打开镜像盘时,报错为“该镜像已损坏,请移至废纸篓”,或者打开软件时提示“XXX 已损坏,打不开。您应该将它移到废纸篓”…

宽窄依赖/宽窄巷子——spark

宽窄依赖是用于标记算子是否需要shuffle过程的 ——本质:只是一种标记,标记两个RDD之间的依赖关系,用于判断是否需要进行shuffle 窄依赖:Narrow Dependencies 定义:父RDD的一个分区的数据只给了子RDD的一个分区 【不…

Devops-蓝鲸篇-03-蓝盾流水线简单介绍

BKCI流水线快速了解 BK-CI 可以帮你快速实现一条持续交付流水线来编译、测试、部署你的应用,下面将通过教程和文档指南告诉你,怎么在 BK-CI 里配置和管理持续集成、持续交付(CI/CD)流水线。 下面为流水线的完整逻辑图&#xff1…

C++中的接口继承和实现继承以及多态性与性能的平衡处理

接口继承 接口继承是指子类只继承基类的纯虚函数,即只继承基类的接口,而不继承基类的实现。子类必须实现基类中的所有纯虚函数,否则子类也将成为抽象类。在 C 中,接口继承主要通过抽象类来实现。抽象类是包含至少一个纯虚函数的类…

Django ORM – 多表实例

表与表之间的关系可分为以下三种: 一对一: 一个人对应一个身份证号码,数据字段设置 unique。一对多: 一个家庭有多个人,一般通过外键来实现。多对多: 一个学生有多门课程,一个课程有很多学生,一般通过第三个表来实现关…

Spire.PDF for .NET【页面设置】演示:向 PDF 文档添加页码

在 PDF 文档中添加页码不仅实用,而且美观,因为它提供了类似于专业出版材料的精美外观。无论您处理的是小说、报告还是任何其他类型的长文档的数字副本,添加页码都可以显著提高其可读性和实用性。在本文中,您将学习如何使用Spire.P…

游戏引擎学习第47天

仓库: https://gitee.com/mrxiao_com/2d_game 昨天我们花了一点时间来修复一个问题,但基本上是在修复这个问题的过程中,我们决定添加一个功能,那就是在屏幕上控制多个实体。所以如果我有一个手柄,我可以添加另一个角色&#xff0…

java agent-03-Java Instrumentation 结合 bytekit 实战笔记 agent attach

java agent 系列 java agent 介绍 java agent-02-Java Instrumentation API java agent-03-Java Instrumentation 结合 bytekit 实战笔记 agent attach java agent-03-Java Instrumentation 结合 bytekit 实战笔记 agent premain 拓展阅读 前面几篇文档,我们简…