七天物联网智能家居实战学习笔记(二)

今日头条

1151人已加入

描述

课程来自百问网:https://www.100ask.net

STM32F103C8 开发板开发步骤

上手思路

  1. 芯片原厂下载资料:《数据手册(Product Specifications)》、《参考手册(Reference Manuals)》,如 st 官网
  2. 下载公板或者其它开发板配套资料:原理图,一般卖家会根据硬件送配套的原理图。
  3. 根据《原理图》分析硬件,如最小系统
  4. 根据示例程序和《参考手册》编写程序

最小系统

用最少得威廉希尔官方网站 组成单片机可以工作的系统,一般包括

  1. 单片机芯片
  2. 电源威廉希尔官方网站
  3. 时钟威廉希尔官方网站
  4. 复位威廉希尔官方网站
  5. 启动选择威廉希尔官方网站
  6. 调适下载

单片机开发方式

  1. 使用汇编操作寄存器:执行效率高,兼容性差,编程效率低
  2. 使用 c 语言操作寄存器:执行效率适中,兼容性差,编程效率适中
  3. 使用库开发(以 st 为例)
  • 标准库(不维护):执行效率低,兼容性一般,编程效率高
  • HAL 库:执行效率低,兼容性好,编程效率高

搭建开发环境

安装开发工具:Keil

软件特点:编写代码自由度比较高,但是需要手动引入程序中使用到的库文件,需要自己有良好的代码架构能力。

安装完成后,需要下载对应板子 ROM

  1. Devices 页面 Search 窗口搜索:STM32F103C8
  2. 选中 STM32F103C8 选项
  3. 下载 ROM ,此步骤会跳到官网(翻墙后才能访问?),然后下载 .pack 文件
  4. 安装 .pack 文件后即代表 ROM 安装完成

安装开发工具:STM32CubePrg

软件特点:有大量模板方法,写代码需要遵循代码格式写,st 公司提供软件,有很多可视化的操作。

将此工具生成的代码使用 Keil 打开

安装烧录工具:100ASK_STM32F103_Tools

百问网开发的 IDE 工具,用于向 STM32f103_MINI 开发板烧录固件

编写 LED 灯控制程序

需求:闪烁 LED 灯
应用版本:6.4.0

创建工程

  1. File -> New Project
  2. Part Number 中输入芯片名称 STM32F103C8
  3. 选中芯片后,点 Start Project

配置工程

  1. 找原理图中芯片控制 LED 的引脚,根据图可以看到引脚名称是 PA1
     
单片机

  1. PA1 名称中:
    • P 为 peripheral,代表外围设备
    • A 为外围设备代号,比如 PA, PB, PC...
    • 1 为引脚值,代表第 1 个引脚,可以根据 PA1 定位到特定引脚,定位引脚后就可以向此引脚输入/输出值了
  2. 在工程中,找到 PA1 引脚,设置属性为 GPIO_Output (代表输出点流)
  3. 进入 Project Manager 页,输入 Project Name,如 Code1_CreateProject,选择存放路径
  4. 设置 Toolchain / IDE 为 MDK-ARM (因为 Keil 为 MDK-ARM 项目)
  5. IDE 左侧选择 Code Generetor 标签,Generated files 选中 Generate peripheral initialization as a pair of '.c/.h' files per peripheral 复选框,此功能可以将 c 文件和 h 文件分开
  6. IDE 右上侧点击 GENERATE CODE
  7. 生成后可以点击弹窗的 Open Project 打开项目,也可以点击 Open Folder 打开目录,然后在 MDK-ARM 目录中打开 .uvprojx 文件(使用 Keil IDE 打开)

编程

  1. 点击左上角 Build 按钮(用于查找函数文档)
  2. Keil IDE 中找到 main.c 文件
  3. 只能在 /* USER CODE BEGIN n *//* USER CODE END n */ 之前写代码,不然会被 STM32CubePrg 覆盖
  4. 找到 /* USER CODE BEGIN 3 */,添加如下代码
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET); // 向 PA1 引脚写入 RESET 值HAL_Delay(1000); // 延迟 1000 毫秒HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET); // 向 PA1 引脚写入 SET 值HAL_Delay(2000);
  1. 选中 HAL_GPIO_WritePin 函数,点击 F12 键,进入源码,查看函数各参数含义

烧录

  1. 点击 Build 编译程序
  2. 打开 IDE: 100ASK_STM32F103_Tools,点击 “选择文件”,打开文件选择器
  3. 选择 path/to/Code1_createProject/MDK-ARM/Code1_CreateProject/Code1_createProject.hex 文件
  4. 点击开始下载,下载完成后,LED 灯会亮 1 秒然后灭 2 秒一直循环
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
浓墨fff 2022-03-01
0 回复 举报
收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分