| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STM32F103单片机IO口的一些功能配置问题(8中模式之寄存器和库函数版) -> 正文阅读 |
|
[嵌入式]STM32F103单片机IO口的一些功能配置问题(8中模式之寄存器和库函数版) |
本文从寄存器和库函数俩个角度去分析和解读,方便使用和学习,同时本人也致力于实用性的发文,不做无谓的啰嗦,有啥说啥实事求是的原则!当然如果文章有错误的地方也希望读者朋友们可以指出来,希望我可以做的更好,同时也希望这篇文章对大家有用! 一、GPIO的功能描述(8种模式)
????????
每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器
(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存
器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR),共计7个寄存器来控制。
????????根据数据手册中列出的每个I/O端口的特定硬件特征, GPIO端口的每个位可以由软件分别配置成多种模式。
????????
每个I/O端口位可以自由编程,然而I/0端口寄存器必须按32位字被访问(不允许半字或字节访
问)。GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器的读/更改的独立访问;我们常用的 IO 端口寄存器只有 4 个:CRL、CRH、IDR、ODR;CRL 和 CRH 控制着每个 IO 口的模式及输出速率。
端口位配置表:
? ?输出模式位: ? 端口配置低寄存器(GPIOx_CRL) (x=A..E)
偏移地址:0x00
复位值:0x4444 4444
? ? 端口配置高寄存器(GPIOx_CRH) (x=A..E)
偏移地址:0x04
复位值:0x4444 4444
? ? ????????初学者在看到这个表的时候是不是感到迷茫?不要怂,我们一起上!上表虽然有32位,我们把CNF和MODE俩个为一组(算一位)这样就就好理解的多了吧。每一组分为配置位(CNF)和模式位(MODE)共4位把他组合起来变为0xXX就是我们最终需要的了。例如:配置推挽输出--->? 00 11 = 0x3,表示推挽输出速度为50MHz.
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:40:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |