文章目录

  • 0、前言
  • 1、什么是STM32标准库函数
  • 2、为什么采用库来开发及学习?
  • 3、实验:构建库函数雏形
    • 3.1、外设寄存器结构体定义
    • 3.2、外设存储器映射
    • 3.3、外设声明
    • 3.4、定义位操作函数
    • 3.5、定义初始化结构体 GPIO_InitTypeDef
    • 3.6、定义引脚模式的枚举类型
    • 3.7、定义GPIO 初始化函数
  • 3.8、使用函数点亮LED灯
    • 3.9、下载验证
    • 3.10、总结

0、前言

  虽然我们上面用寄存器点亮了 LED,乍看一下好像代码也很简单,但是我们别侥幸以后就可以一直用寄存器开发。在用寄存器点亮 LED 的时候,我们会发现 STM32 的寄存器都是 32 位的,每次配置的时候都要对照着《STM32F10X-中文参考手册》中寄存器的说明,然后根据说明对每个控制的寄存器位写入特定参数,因此在配置的时候非常容易出

07、自己写库—构建库函数雏形相关推荐

  1. 15-自己写库函数构建库函数雏形

    寄存器编程---是如何过渡到固件库 1:头文件 #ifndef _STM32F4XX_H #define _STM32F4XX_H #include <stdint.h>#define G ...

  2. [Python人工智能] 三十四.Bert模型 (3)keras-bert库构建Bert模型实现微博情感分析

    从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章开启了新的内容--Bert,首先介绍Keras-bert库安装及基础用法及文本分类工作.这篇文章将通过keras- ...

  3. 控制台发送get命令_.NET Core使用命令行参数库构建控制台应用程序

    前言 在我们开发中可能需要设计一次性应用程序,这些实用程序可以利用接近原始源代码的优势,但可以在与主Web应用程序完全独立的安全性上下文中启动.具体在 [管理过程](https://12factor. ...

  4. 性能测试和优化实录(mybatisplus异步写库@Async引起的对象无法释放问题)

    通过调整和优化系统运行参数,观察性能测试结果: 1. 全部使用默认参数 1.1 启动脚本 java -jar server.jar 1.1 jmap -heap数据 # jmap -heap 2605 ...

  5. Makefile学习笔记07|编译静态库并通过ifeq语句

    Makefile学习笔记07|编译静态库并通过ifeq语句   希望看到这篇文章的朋友能在评论区留下宝贵的建议来让我们共同成长,谢谢.   这里是目录   本篇与上一篇有较多联系,有兴趣的可以先看上一 ...

  6. Spoken English-口语-音节库构建

    1 Spoken English-口语 英语的学习分为口语和书面,口语侧重于听说,而书面侧重于书写. 1.4 音节库构建 在清晰的了解了什么是音节的基础之上,就可以进行音节拼读练习了.音节拼读练习的目 ...

  7. keil添加hal库_Stm32CubeMX生成的hal库工程加入标准库的库函数的方法

    本帖最后由 seawind1986 于 2017-4-7 22:30 编辑 第一步用Stm32CubeMX创建一个工程并生成Keil MDK的工程,不多赘述. 001.jpg (127.92 KB, ...

  8. .NET WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作)

    .NET WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作) 参考文章: (1).NET WebAPI 用ExceptionFilt ...

  9. 【Android NDK 开发】Android Studio 使用 CMake 导入动态库 ( 构建脚本路径配置 | 指定动态库查找路径 | 链接动态库 )

    文章目录 I . CMake 引入动态库与静态库区别 II . Android Studio 中 CMake 引入动态库流程 III . 指定动态库查找路径 IV . 链接函数库 V . 完整代码示例 ...

  10. 《NLTK基础教程——用NLTK和Python库构建机器学习应用》——2.11 小结

    本节书摘来异步社区<NLTK基础教程--用NLTK和Python库构建机器学习应用>一书中的第2章,第2.11节,作者:Nitin Hardeniya,更多章节内容可以访问云栖社区&quo ...

最新文章

  1. 【11分钟训练完ImageNet】DNN训练再破纪录,1024 CPU Caffe开源
  2. 微信小程序根据坐标点解析地址常见报错:请求来源未被授权
  3. 并发集合(二)使用非阻塞线程安全的列表
  4. [BUUCTF-pwn]——picoctf_2018_can_you_gets_me
  5. 内存可见性和原子性:Synchronized和Volatile的比较
  6. WCF实例 - 简介
  7. 服务器ping不通的解决办法之阿里云云服务器VNC报错Failed to execute /sbin/init
  8. 从LeNet到SENet——卷积神经网络回顾
  9. 八大妙招:改善企业网络安全
  10. L - All in All(子序列)
  11. 要理解递归,得先理解递归--用Java语言由浅入深讲解汉诺塔游戏
  12. android swf游戏下载工具,安卓swf游戏播放器下载
  13. 快速判断base16,base32,base64
  14. Oreilly的历史和公司概况
  15. gif在线转换html,在线mp4转换gif
  16. linux中文字体不一致的解决方法
  17. 1730: 珠心算测验
  18. Avoid mutating a prop directly子传父报错解决
  19. 试用一款开源的轻量级3D建模软件《Dust3D》
  20. [luogu] P2498 [SDOI2012]拯救小云公主 二分答案+bfs

热门文章

  1. winform高仿腾讯QQ2013,几十个界面哦!!
  2. Python jiba 分词
  3. Scrapy项目 - 数据简析 - 实现豆瓣 Top250 电影信息爬取的爬虫设计
  4. wincc安装信息服务器,常见WinCC安装问题及注意事项
  5. 帐套文件(*.mdf)无法复制,拷贝出现数据错误(循环冗余检查)帐套文件(*.mdf)无法复制,拷贝出现数据错误(循环冗余检查),sql附加823错误
  6. android自动亮度流程,Android 亮度自动调节是如何实现的?
  7. android自动调节屏幕亮度自动调节流程解析
  8. Permission is only granted to system apps解决方法
  9. 域名服务器作用是,域名服务器的作用
  10. hibernate操作步骤(代码部分)