- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 STM32F4开发基础知识入门-正点原子探索者STM32F4开发板-STM32F4开发指南-库函数
STM32F4 开发指南(库函数版)
ALIENTEK 探索者STM32F407 开发板教程
第四章 STM32F4 开发基础知识入门
这一章,我们将着重STM32 开发的一些基础知识,让大家对STM32 开发有一个初步的了
解,为后面 STM32 的学习做一个铺垫,方便后面的学习。这一章的内容大家第一次看的时候
可以只了解一个大概,后面需要用到这方面的知识的时候再回过头来仔细看看。这章我们分 7
个小结,
·4.1 MDK 下C 语言基础复习
·4.2 STM32F4 系统架构
·4.3 STM32F4 时钟系统
·4.4 IO 引脚复用器和映射
·4.5 STM32F4 NVIC 中断优先级管理
·4.6 MDK 中寄存器地址名称映射分析
·4.7 MDK 固件库快速开发技巧
4.1 MDK 下C 语言基础复习
这一节我们主要讲解一下C 语言基础知识。C 语言知识博大精深,也不是我们三言两语能
讲解清楚,同时我们相信学STM32F4 这种级别MCU 的用户,C 语言基础应该都是没问题的。我
们这里主要是简单的复习一下几个C 语言基础知识点,引导那些C 语言基础知识不是很扎实的
用户能够快速开发STM32 程序。同时希望这些用户能够多去复习一下C 语言基础知识,C 语言
毕竟是单片机开发中的必备基础知识。对于C 语言基础比较扎实的用户,这部分知识可以忽略
不看。
4.1.1 位操作
C 语言位操作相信学过C 语言的人都不陌生了,简而言之,就是对基本类型变量可以在位级
别进行操作。这节的内容很多朋友都应该很熟练了,我这里也就点到为止,不深入探讨。下面
我们先讲解几种位操作符,然后讲解位操作使用技巧。
C 语言支持如下6 种位操作
运算符 含义 运算符 含义
按位与 ~ 取反
| 按位或 左移
^ 按位异或 右移
表4.1.1 16 种位操作
这些与或非,取反,异或,右移,左移这些到底怎么回事,这里我们就不多做详细,相信
大家学C 语言的时候都学习过了。如果不懂的话,可以百度一下,非常多的知识讲解这些操作
符。下面我们想着重讲解位操作在单片机开发中的一些实用技巧。
1) 不改变其他位的值的状况下,对某几个位进行设值。
这个场景单片机开发中经常使用,方法就是先对需要设置的位用操作符进行清零操作,
然后用|操作符设值。比如我要改变GPIOA- BSRRL 的状态,可以先对寄存器的值进行
清零操作
GPIOA- BSRRL =0XFF0F; //将第4-7 位清0
然后再与需要设置的值进行|或运算
GPIOA- BSRRL |=0X0040;//设置相应位的值,不改变其他位的值
96
STM32F4 开发指南(库函数版)
ALIENTEK 探索者STM32F407 开发板教程
2) 移位操作提高代码的可读性。
移位操作在单片机开发中也非常重要,我们来看看下面一行代码
GPIOx-ODR = (((uint32_t)0x01) pinpos);
这个操作就是将ODR 寄存器的第pinpos 位设置为1,为什么要通过左移而不是直接设
置一个固定的值呢?其实,这是为了提高代码的可读性以及可重用性。这行代码可以
很直观明了的知道,是将第pinpos 位设置为1。如果你写成
GPIOx-ODR =0x00
文档评论(0)