STM32F10系列的管脚复用功能和AFIO
来源:互联网 发布:sql中replace函数用法 编辑:程序博客网 时间:2024/05/12 09:59
最近用stm32的spi接口和ti的cc3000通信,首先配置spi接口,按照网络关于spi接口的配置例程配置好以后,发现spi不工作,用while循环发送数据时,clk和mosi管脚没有输出信号,然后各种找问题:首先检查时钟,然后看看各个管脚能不能被置位,复位,发现其GPIO功能都是正常的。后来认真看手册,找出了原因,就是管脚的复用功能没有注意。仅仅看人家的历程,不理解为何这么做是行不通的。
spi的配置下,要开启GPIO口的时钟,外设spi的时钟,例如spi1的话:RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 |RCC_APB2Periph_GPIOA,ENABLE);
由于spi功能是gpio的一个复用功能,所以在定义管脚时,要选择复用模式的下的输入输出模式。一般情况下的IO口在复位后变成默认的GPIO功能,其复用的功能要对它进行配置才能工作,如stm32f10xx系列的PA5其复位以后是普通IO口,其复用功能才是spi口clk管脚,所以在配置PA5为clk管脚时要选择复用下的模式,就是GPIO_Mode_AF_PP和GPIO_Mode_AF_OD中的一种。不能选择其它的输出模式。这一点在数据手册中也有相关的说明。当时就是没有注意这个细节,浪费了3个小时的时间。
查阅了一些资料,对管脚复用和管脚映射方面的概念做一下总结。管脚复用和管脚映射都是为了实现stm32外设功能而提出的概念,将默认的实现外设功能的引脚用其它可选的引脚来实现外设功能较管脚映射。管脚映射时要开启AFIO时钟,在下面的三种情况下要开启AFIO时钟:管脚重映射、外部中断EXTI、事件。要使用复用功能时,要开启外设(相对于m3内核而言st自己加入的外设,如spi接口,iis接口,ad等)的GPIO口时钟,同时开启外设的时钟,输出管脚选择GPIO_Mode_AF_PP和GPIO_Mode_AF_OD中的一种,使能外设模块。
- STM32F10系列的管脚复用功能和AFIO
- 复用功能IO和调试配置(AFIO)
- AFIO(复用功能IO和调试配置)
- 学习STM32(2)-IO-AFIO(复用功能IO和调试配置)
- 学习STM32(2)-IO-AFIO(复用功能IO和调试配置)
- 学习STM32(2)-IO-AFIO(复用功能IO和调试配置)
- stm32 GPIO复用功能AFIO介绍
- STM32的功能引脚重映射和复用功能
- STM32的功能引脚重映射和复用功能
- 如何理解STM32引脚中的GPIO,AFIO时钟分配策略和管脚复用
- 如何配置Stellaris系列处理的端口复用功能lm3s
- STM32复用功能,一张图读懂串口与GPIO口复用功能的关系
- STM32的GPIO的复用功能和重映射功能
- STM32的GPIO的复用功能和重映射功能
- ST芯片的引脚复用功能和重映射功能
- gulp插件gulp-file-include的模板复用功能
- STM32的复用功能——时钟输出(MCO)
- 论“废话”的语用功能
- 这些年,和oracle叫过的劲
- 黑马程序员---交通灯管理系统
- mysql 查询重复记录
- LeetCode Triangle
- jQuery跨域调用WebService简介
- STM32F10系列的管脚复用功能和AFIO
- 深入JVM的Class文件结构
- 关于64位UBUNTU硬盘安装方式详解,和提示找不到"vmlinuz"的分析
- Cocos2dx 3.0 过渡篇(十七) std::bind与CC_CALLBACK不得不说的故事
- 配置IIS7.5的过程
- C语言的谜题
- ASP.NET之如何用代码读取数据1
- scatter 文件语法
- 分页模板