关于IO用作复用功能时的时钟设置注意要点

发布者:岭南布衣最新更新时间:2021-05-26 来源: eefocus关键字:复用功能时  时钟设置 手机看文章 扫描二维码
随时随地手机看文章

很多客户在使用STM32的外设时,由于IO口被用作复用功能,外设的初始化正确,GPIO口初始化正确,外设的时钟也已开启,但是外设仍然无法正常运行。


其中最关键的一项,大多数使用者多没有设置,就是某个IO口被用作外设的接口时,需要开启IO口的复用功能的时钟,即进行外设、IO的时钟使能时,需要如下代码:


RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx | RCC_APB2Periph_AFIO, ENABLE);/* GPIOx and AFIO clock enable */


x --- 为对应的GPIO口,如:A、B、C、D、E。


希望用户在使用时,注意该要点!


关键字:复用功能时  时钟设置 引用地址:关于IO用作复用功能时的时钟设置注意要点

上一篇:STM32 系统时钟和SysTick定时器
下一篇:STM32 ADC采样配置

推荐阅读最新更新时间:2024-11-12 23:30

STM32的IO口的8种配置(GPIO)
1 /` STM32的输入输出管脚有下面8种可能的配置:(4输入+2输出+2复用输出) ① 浮空输入_IN_FLOATING ② 带上拉输入_IPU ③ 带下拉输入_IPD ④ 模拟输入_AIN ⑤ 开漏输出_OUT_OD ⑥ 推挽输出_OUT_PP ⑦ 复用功能的推挽输出_AF_PP ⑧ 复用功能的开漏输出_AF_OD 1.1I/O口的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关(芯片内部在I/O口 的输出部分安排了多个响应速度不同的输出
[单片机]
STM32 PA15作普通IO用时的配置
调STM32F103RB板时,其中用到PA15作普通LED灯。一开始编程,配置成PP输出模式,但无论置0还是置1,均输出3.3V。后来发现此脚为JTAG口调试口。 经查找到问题解决办法: 需要重新映射一下,重新映射方法如下: 首先要打开GPIOA的AFIO时钟: RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); 然后调用GPIO重映射函数,根据需求实现重映射: GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE); 然后运行OK! 补充说明 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisab
[单片机]
MSP430单片机控制IO口操作-LED灯闪烁
//******************************************************************************* // D13x Demo - 在上一节基础上改变系统时钟,观察LED灯的闪烁频率 // // 描述:通过改变系统时钟,来改变闪烁频率;通过 P1 异或 来取反 P1.5;软件循环延时 // ACLK= n/a, MCLK= SMCLK= default DCO ~ 800k // // MSP430F13x // ----------------- // /|| XIN|- // | | | // --|RST XOUT|- // | | // | P1.5|-- LE
[单片机]
MSP430FG439上实现IO模拟UART以及移植要点解析
最近要做MSP430上的开发,一上手就要做IO模拟UART这种难度的玩意,幸好网上已经有很多现成的MSP430的软串口实现例子,本文代码大部分参考 http://www.microcontrol.cn/430base.htm 上的《 MSP430的Timer_A实现模拟串口功能例程 》,并且成功移植到MSP430FG439之上,不过移植的过程有点匪夷所思。。。。由于才学430没几天,所以花了一周才调试出IO模拟UART。。。。 接下来就贴上100%能在MSP430FG439上使用的代码(即使是同一Family的不同型号,也会有区别): //利用定时器A 作串行口波特率发生器用,利用捕捉比较功能实现异步串行通信。 //芯片型
[单片机]
STM32 普通IO口 模拟串口
这两天一直在调试用普通IO口来承担串口的角色,再次做个笔记。当然广泛参考广大网友的代码在此感谢网友 首先串口的最最最基本的数据格式是由10位数据组成,注意是最最最基本的当然要有些带各种校验的那些暂时不考虑毕竟要先会走才能飞嘛,首先,第一位开始位,其次是八个数据位,然后一个停止位,数据位的时间长度由你的波特率决定的,我模拟的串口最实现了115200波特率当然偶尔有错位,这个就是接下来校验的工作了。 个人定义的数据格式 首先是发送部分,发送相对来说比较简单,直接就是基本的延时由于,stm32有比较方便的滴答定时器所以做出的延时还是相当精准的。 发送代码如下: SendingDelay 需要延时的时间长度由波特率决定 void IO
[单片机]
STM32 普通<font color='red'>IO</font>口 模拟串口
STM32的IO端口高8位或低8位单独操作方法
几天前刚接触stm32的时候, 被单独操作IO口给弄糊涂了, 现记录下, 现在发现其实蛮简单的, 只是刚开始的时候~~~ stm32的IO端口都是16位的, 如果要单独操作某高8位或低8位, 则不是那么简单, 先看两张BSRR/BRR寄存器的图: 据官方数据手册上面说, 这两个寄存器用于专门对ODR进行原子操作的位操作, 都是在置1的时候对某位有影响. 举例说下怎么对IO端口赋值: 1.对高8位/低8位/全部清零 很明显, 这个只需要操作BRR寄存器即可: 对高8位清零:GPIOA- BRR = 0xFF00 对低8位清零:GPIOA- BRR = 0x00FF 全部清零: GPIOA- BRR = 0xFFFF 或 G
[单片机]
STM32的<font color='red'>IO</font>端口高8位或低8位单独操作方法
使用普通IO口自定义协议实现两个51单片机互相通讯
因为想使两个51单片机通讯,又不能使用串口,因为STC89C52单片机只有一个串口,己被占用了,没有串口可以用。所以编写了这个程序。 使用仿真软件进行测试,工作正常。 在电路上实际测试,运行正常。 对控制线,进行短接干扰,测试,都按照预想的结果运行。 测试代码: 发送端不停的发送自定义数据帧,每发送一次,将第数据帧中的2个字节数加 1,再发送。 接收端使用LCD1602 将接收的据据帧中的第2个字节,显示出来。 对两根控制线进行断线,和对地短路干扰测试,也按照预想,干扰消除后,恢复正常工作。 下面是说明文档,附件源代码,和仿真电路图下载。 双单片机通信协议说明文档 一、通信协议的作用 功能:实现两片51单片机互相通
[单片机]
使用普通<font color='red'>IO</font>口自定义协议实现两个51单片机互相通讯
MSP430--数字IO 流水灯程序
1.数字IO共有6组,其中P1,P2可以设置外部中断。 2.通用寄存器: PxIN,PxOUT,PxDIR,PxSEL 上电默认PxDIR为0,即默认为输入。PxSEL若为1,则表示数字IO用作外设功能,这时候P1或P2的中断功能丢失。 3.P1的寄存器:每个地址对应8位寄存器,对应IO的8个PIN. 026h P1SEL 025h P1IE: 中断使能 024h P1IES:中断响应上升沿变化(0),响应下降沿变化(1) 023h P1IFG:中断发生就置位为1,中断执行后要手动清除 022h P1DIR 021h P1OUT 020h P1IN read only 4.流水灯电路:P2端口输
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved