历史上的今天
今天是:2025年02月04日(星期二)
2021年02月04日 | STM32F429——GPIO
2021-02-04 来源:eefocus
除非特别说明,否则本部分适用于整个 STM32F4xx 系列
七 .通用I/O简介
7.1 GPIO 简介
每个通用 I/O 端口包括 4 个 32 位配置寄存器(GPIOx_MODER、GPIOx_OTYPER、GPIOx_OSPEEDR 、GPIOx_PUPDR),
2个32位数据寄存器( GPIOx_IDR 和GPIOx_ODR)、1个32位置位/复位寄存器(GPIOx_BSSR)、1个32位锁定寄存器(GPIOx_LCKR)和
2个32位复用功能选择寄存器(GPIOx_AFRH和GPIOx_AFRL)。
7.2 GPIO工作模式
GPIO可以设置成一下模式
1.输入模式(上拉/下拉/浮空)
在输入模式时,施密特触发器打开, 输出被禁止。 数据寄存器每隔 1 个 AHB1 时钟周期更新一次,可通过
输入数据寄存器GPIOx_IDR 读取 I/O 状态。其中 AHB1 的时钟如按默认配置一般为 180MHz。
2. 输出模式(推挽/开漏,上拉/下拉)
在输出模式中, 输出使能,推挽模式时双 MOS 管以方式工作,输出数据寄存器GPIOx_ODR 可控制 I/O 输出高低电平。开漏模式时,只有 N-MOS 管工作,输出数据寄存器可控制 I/O 输出高阻态或低电平。 输出速度可配置,有2MHz25MHz50MHz100MHz的选项。此处的输出速度即 I/O 支持的高低电平状态最高切换频率,支持的频率越高,功耗越大,如果功耗要求不严格,把速度设置成最大即可。此时施密特触发器是打开的,即输入可用,通过输入数据寄存器 GPIOx_IDR 可读取I/O 的实际状态。用于输出模式时,可使用上拉、 下拉模式或浮空模式。但此时由于输出模式时引脚电平会受到 ODR 寄存器影响,而 ODR 寄存器对应引脚的位为 0,即引脚初始化后默认输出低电平,所以在这种情况下,上拉只起到小幅提高输出电流能力,但不会影响引脚的默认状态。
3. 复用功能(推挽/开漏,上拉/下拉)
复用功能模式中,输出使能,输出速度可配置,可工作在开漏及推挽模式,但是输出信号源于其它外设,输出数据寄存器 GPIOx_ODR 无效;输入可用,通过输入数据寄存器可获取 I/O 实际状态,但一般直接用外设的寄存器来获取该数据信号。 用于复用功能时,可使用上拉、 下拉模式或浮空模式。同输出模式,在这种情况下,初始化后引脚默认输出低电平,上拉只起到小幅提高输出电流能力,但不会影响引脚的默认状态。
4. 模拟输入输出
模拟输入输出模式中,双 MOS 管结构被关闭,施密特触发器停用,上/下拉也被禁止。其它外设通过模拟通 道进行输入输出。
史海拾趣
|
12月26日,年终盘点:3G时代嵌入式技术的最新应用讲座(深圳) 嵌入式是当前发展最快、应用最广、最有发展前景的信息技术应用领域之一,2009年在金融危机的阴影下,中国嵌入式技术却是大展宏图的一年,伴随着移动与宽带市场继续高速增长和LTE成为公认的3G演进方向,传统电信运营商在终端市场的争夺战也达到了白 ...… 查看全部问答> |
|
CLSID_RemoteDataAccess对应的是哪个DLL文件啊 if (dlgPush.DoModal()) { //得到pCERDA接口 HRESULT hr = CoCreateInstance(CLSID_RemoteDataAccess, NULL, CLSCTX_INPROC_SERVER, IID_ISSCERDA, (LPVOID *)&pCERDA); ASSERT(hr == S_OK); ASSERT(pCERDA != NULL); 执行到ASSERT(h ...… 查看全部问答> |
|
看一下这段代码: #include #define TRUE 1 #define FALSE 0 #define uchar unsigned char #define uint unsigned& ...… 查看全部问答> |
|
小弟在安装wince6.0的时候遇到了问题,请大家帮忙一下: 首先安装VS2005,vs2005 SP1和VS2005 for VIsta补丁,然后在安装wince6.0,但是在安装的过程中,出现了错误提示:“ToolsMsmCA(Error):system package,xml file xxxx”。然后安装就自动回 ...… 查看全部问答> |
|
我也不知道我选了什么,突然我的那些是穿孔的焊盘看不见了,包括过孔,然后我把软件关了,重新敷铜还是一样,就是焊盘那一块看不见了,但是连接关系还在那里,我是不是什么东西勾了,所以看不见,求大虾指教。谢谢。。。… 查看全部问答> |




