首页 > 其他分享 >这一篇让你更了解GPIO_Init()函数,了解CNF和MODE是如何配置输入输出模式,GPIOX_CR端口配置寄存器的使用,芯片出厂IO是浮空输入

这一篇让你更了解GPIO_Init()函数,了解CNF和MODE是如何配置输入输出模式,GPIOX_CR端口配置寄存器的使用,芯片出厂IO是浮空输入

时间:2024-07-08 13:27:49浏览次数:15  
标签:GPIOX CNF GPIOC 浮空 MODE 寄存器 GPIO 输入

1 GPIO初始化配置函数  GPIO_Init(GPIOC, &GPIOInitStruct);

 1 .1  正常的初始化函数代码

1.2 解读GPIO_Init(GPIOC,&GPIOInitStruct); 

所以GPIOC的地址为   0x4000 0000 + 0x0001 0000 + 0x0000 1000 = 0x4001 1000

STM32F103C8T6通用与复用功能I/O(GPIO与AFIO)、寄存器映射-CSDN博客

所以将GPIOC外设的寄存器地址传过去,也就是可以通过地址进行读写相应的寄存器值

1.3 通过结构体指针赋值(&GPIOInitStruct)

然后就有了 上面正常初始化的代码

2 解读CR寄存器是如何配置输入、输出模式的,CNF、MODE

2.1 将GPIOC_13设置为开漏输出模式(最小系统板C8T6)

硬件电路搭建

 2.2 因为是GPIOC_13,所以端口配置为高寄存器(GPIOx_CRH) (x=A..E)

查看端口位配置表

配置为输出模式,2Mhz的IO口翻转速度,所以MODE大于00,可以参考上面图。即MODE=11,CNF1=0,CNF0=1,为开漏输出,即CNF=01。

通过ST-LINK仿真验证结果

 验证结果正确,此外还发现一个事情,也就是芯片出厂io口设置默认是浮空输入,因为省电嘛。通过仿真查看对应的是浮空输入。出厂默认是浮空输入,验证成功。

 有一些少部分IO口不是浮空输入,例如PA13、14、15通过查表可得是上/下拉输入。并且输出是高电平。

 因为浮空输入是高低电平不确定,并且高阻态,此PA13、14、15的IO口的本人理解可能是这样。欢迎各各位大佬指导一下。

 

觉得我讲的对你有帮助的话,点个赞支持一下,谢谢。也欢迎各位大牛指导一下我的错误,谢谢大家,大家一起进步。 

 

 

 

标签:GPIOX,CNF,GPIOC,浮空,MODE,寄存器,GPIO,输入
From: https://blog.csdn.net/weixin_68142348/article/details/140263374

相关文章

  • Docker mysql 配置文件读取失败 [Warning] World-writable config file '/etc/mysql/c
    这个警告表明MySQL正在忽略/etc/mysql/conf.d/my.cnf这个配置文件,因为它被设置为了全世界可写。这个警告是基于安全性的考虑。当配置文件被设置为全世界可写时,任何人都可以修改它,这可能会导致安全风险,因为恶意用户可以更改MySQL的配置,从而影响数据库的行为和安全性。为了......
  • mysql的my.cnf解释说明
    这个关乎配置文件,需要了解后,对数据库管理有很大的帮助。#***clientoptions相关选项***##以下选项会被MySQL客户端应用读取。注意只有MySQL附带的客户端应用程序保证可以读取这段内容。如果你想你自己的MySQL应用程序获取这些值。需要在MySQL客户端库初始化的时候指定这些选......
  • Mysql在Linux运行时新增配置文件提示:World-wrirable config file '/etc/mysql/conf.d/
    场景docker-compose入门以及部署SpringBoot+Vue+Redis+Mysql(前后端分离项目)以若依前后端分离版为例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/128372122在Centos服务器上使用docker-compose部署mysql后,未配置数据卷映射的my.cnf配置文件。再将服务全部dow......
  • cnf结构探索与应用的文献-归入cmt标签
      @inproceedings{DBLP:conf/gcai/JamaliM17,author={SimaJamaliandDavidMitchell},editor={ChristophBenzm{\"{u}}llerandChristineL.LisettiandMartinTheobald},t......
  • mysql之my.cnf详解
    值,如果该值为0,则默认值为max_binlog_size(1G);如果不为0,则max_relay_log_size则为最大的relay_log文件大小;relay-log-purge=1#是否自动清空不再需要中继日志时。默认值为1(启用)expire_logs_days=30#超过30天的binlog删除binlog_cache_size=1M#在一个事务中......
  • Docker安装mysql配置my.cnf并挂载到外部机器
    1.环境准备,创建外部挂载文件夹conf,data,logmkdir-p/data/dockerdata/mysql3306/{conf,data,log}2.在/data/dockerdata/mysql3306/conf文件夹下创建my.cnf文件my.conf文件配置如下[mysqld]#Mysql服务的唯一编号每个mysql服务Id需唯一server-id=1#服务端口号默认3306......
  • MySQL配置文件my.cnf的理解
    MySQL配置文件my.cnf的理解一、缘由最近要接手数据库的维护工作,公司首选MySQL。对于MySQL的理解,我认为很多性能优化工作、主从主主复制都是在调整参数,来适应不同时期不同数量级的数据。故,理解透彻my.cnf里的参数是永恒的话题;只有理解透彻了参数设置,才能在某些方面对数据库进......
  • 最简单的my.cnf配置设置
    最简单的my.cnf配置设置[mysqld]datadir=/usr/local/mysql/data#数据文件存放的目录socket=/tmp/mysql.sock#为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件log-error=/usr/local/mysql/log/rizhi.log#启动mysql的日志,如果有错误会在里面提示pid-file=/usr/loc......
  • MySQL修改my.cnf配置不生效的解决方法
    MySQL修改my.cnf配置不生效的解决方法 这篇文章主要介绍了MySQL修改my.cnf配置不生效的解决方法,简单分析了配置文件的执行顺序与原理并提出解决方法,需要的朋友可以参考下本文实例讲述了MySQL修改my.cnf配置不生效的解决方法。分享给大家供大家参考,具体如下:一、问题:修改了......
  • mysql配置my.cnf包含innodb配置详解
    1.#以下选项会被MySQL客户端应用读取。2.#注意只有MySQL附带的客户端应用程序保证可以读取这段内容。3.#如果你想你自己的MySQL应用程序获取这些值。4.#需要在MySQL客户端库初始化的时候指定这些选项。5.6.#7.[client]8.#password=[your_passwo......