STM32系列常见问答集锦

上传人:飞*** 文档编号:40277017 上传时间:2018-05-25 格式:DOCX 页数:37 大小:84.96KB
返回 下载 相关 举报
STM32系列常见问答集锦_第1页
第1页 / 共37页
STM32系列常见问答集锦_第2页
第2页 / 共37页
STM32系列常见问答集锦_第3页
第3页 / 共37页
STM32系列常见问答集锦_第4页
第4页 / 共37页
STM32系列常见问答集锦_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《STM32系列常见问答集锦》由会员分享,可在线阅读,更多相关《STM32系列常见问答集锦(37页珍藏版)》请在金锄头文库上搜索。

1、STM32 系列常见问答集锦系列常见问答集锦STM32 系列常见问答集锦系列常见问答集锦【2012 年年 10 月月 25 日更新日更新】一、一、STM32STM32 关于关于 GPIOGPIO 的问题集锦的问题集锦二、二、STM32STM32 关于关于 USARTUSART 的问题集锦的问题集锦三、关于三、关于 STM32STM32 的中断问题集锦的中断问题集锦四、关于四、关于 STM32STM32 的的 SPISPI 问题集锦问题集锦五、关于五、关于 STM32STM32 的的 ADC/DACADC/DAC 问题集锦问题集锦六、关于六、关于 STM32STM32 的的 DMADMA 问题集

2、锦问题集锦七、关于七、关于 STM32STM32 的的 FLASHFLASH 问题集锦问题集锦八、关于八、关于 STM32STM32 的以太网问题集锦的以太网问题集锦九、关于九、关于 STM32STM32 的定时器问题集锦的定时器问题集锦十、关于十、关于 STM32STM32 的的 I2CI2C 问题集锦问题集锦十一、关于十一、关于 STM32STM32 的的 PWMPWM 问题集锦问题集锦十二、关于十二、关于 STM32STM32 的的 USBUSB 问题集锦问题集锦十三、关于十三、关于 STM32STM32 的的 JLINKJLINK 问题集锦问题集锦十四、十四、 关于关于 STM32ST

3、M32 其他问题集锦其他问题集锦一、一、STM32STM32 关于关于 GPIOGPIO 的问题集锦的问题集锦1 1、关于、关于 GPIO问:问:STM32 的 IO 口初始化为输入浮空,那管脚是高电平还是低电平呢?答:答:既不是高电平也不是低电平,悬空的意思是没有使用的状态。2、有关、有关 stm32f103 端口复用的问题?端口复用的问题?问:问:在学习 GPIO 时,遇到到端口复用问题一直不能明白,我举个例子:PB6 PB7 默认情况下是做普通 IO 使用的,当我想用 I2C1 是,我开启RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE)

4、;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);当我要使用 I2C1 的重定义时,我要打开,RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);这样理解对不对?有的人说当用的芯片自带的外设时都要打开 AFIO 时钟,但我用到 usart1 时没有打开 AFIO 时钟,照样能用 usar

5、t,这是为什么?总之问这个问题的根本原因是 AFIO 的时钟要在什么情况下打开?答:答:1、串口必须要打开 AFIO 时钟,不然不能工作。可能你的初始化函数、RCC 配置中有开启的地方。2、AFIO 在你需要使用某一模块时,比如你想使用 GPIOC,这个时候要打开 GPIOC 模块的时钟。 3、关闭 I2C 而不是关闭 I2C 模块的总线,如果你想使用普通模式,就要把 I2C 模块关闭以后,重新配置 GPIOB 模块,就可以正常使用了。3、AFIO 重映射的操作步骤是什么?重映射的操作步骤是什么?答:答:使能被重新映射到的 I/O 端口时钟使能被重新映射的外设时钟使能 AFIO 功能的时钟 (

6、勿忘!) 进行重映射4 4、配置、配置 IOIO 口的频率问题口的频率问题问:问:配置 IO 口的频率时,为什么只给一个 IO 口配置?答:答:GPIO_InitStructure.GPIO_Speed 这个结构体的成员始终为 GPIO_Speed_50MHz 配置其他 io 口时也默认用 50MHz 。5 5、请问怎样开始、请问怎样开始 STM32W108CBU64STM32W108CBU64 芯片的芯片的 PB5PB5 引脚外设输入中断?引脚外设输入中断?问:问:有没有这么一个例程,有开启外设中断和中断函数的? 最佳答案:最佳答案:看了下 datasheet,PB5 复用的功能为 PB5,

7、 ADC0, TIM2CLK, TIM1MSK,相关的中断应该有,就看你配置为什么外设了。6 6、STM32F101STM32F101 TamperTamper PinPin 使用问题使用问题问:问:请教各位大虾:STM32F101 BKP 当中的 Tamper Pin 该如何初始化!?答:答:当 TPAL=0 时:如果在启动侵入检测 TAMPER 引脚前(通过设置 TPE 位)该引脚已经为高电平,一旦启动侵入检测功能,则会产生一个额外的侵入事件(尽 管在 TPE 位置1后并没有出现上升沿)。 当 TPAL=1 时:如果在启动侵入检测引脚 TAMPER 前(通过设置 TPE 位)该引脚已经为低

8、电平,一旦启动侵入检测功能,则会产生一个额外的侵入事件 (尽管在 TPE 位置1后并没有出现下降沿)。 设置BKP_CSR 寄存器的 TPIE 位为1,当检测到侵入事件时就会产生一个中断。 详见:BKP_CSR7 7、有关有关 stm32f103 端口复用的问题?端口复用的问题?问:问:在学习 GPIO 时,遇到到端口复用问题一直不能明白,我举个例子: PB6 PB7 默认情况下是做普通 IO 使用的,当我想用 I2C1 是,我开启RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB

9、2Periph_GPIOB,ENABLE); 当我要使用 I2C1 的重定义时,我要打开, RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); 这样理解对不对? 有的人说当用的芯片自带的外设时都要打开 AFIO 时钟,但我用到 usart1 时没有打开 AFIO 时钟,照样能用 usart,这是为什么? 总之问这个问题的根本原因是 AF

10、IO 的时钟要在什么情况下打开? 答:答:1、 串口必须要打开 AFIO 时钟,不然不能工作。可能你的初始化函数、RCC 配置中有开启的地方。2、AFIO 在你需要使用某一模块时,比如你想使用 GPIOC,这个时候要打开 GPIOC 模块的时钟。 3、关闭 I2C 而不是关闭 I2C 模块的总线,如果你想使用普通模式,就要把 I2C 模块关闭以后,重新配置GPIOB 模块,就可以正常使用了。7、STM32 里面,设置 GPIO_Mode_IPU 有什么用问:问:中断的配置里面有:GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource8)

11、; GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource9);GPIO 口设置里面有:GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(GPIOB, 我想问的是,这两组设置必须同时存在吗?答:答:GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource8); GPIO_EXTILineConfig(GPIO_Por

12、tSourceGPIOB, GPIO_PinSource9);STM32 中这两句话的意思是 PB 口的 8、9 管脚作为外部中断的触发信号,所以 Pin_8 和 Pin_9 就要设置成输入的模式,而 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;中 IPU 是指 IO 口的工作模式是带上拉输入,这个和具体的电路有关,总之如果选择某个 IO 口作为外部中断的触发信号,就必须 配置这个 IO 口为输入模式,不然无法触发中断8 8、stm32stm32 中中 GPIOGPIO 口的最大输出速度如何理解口的最大输出速度如何理解? ?问:问:stm32 中

13、GPIO 口的最大输出速度如何理解?答:答:1、是这样的,2M、10M 和 50M 是指 GPIO 口的采样频率。不知这样理解对不对,我就是这样做的。2、我通过 PB6 采集 80KBPS/S 的方波,通过中断计采集,完全胜任。9 9、STM32 GPIO 弱上拉能做输入输出吗问:问:STM32 GPIO 弱上拉能做输入输出吗?答:答:32 只有上拉输入,用在外部连接的是下路输出的,这样才能正确读取。输出的话一般用推挽和开漏,推挽用于一般的驱动,开漏一般加上拉电阻像三极管集电极那样驱动较大电流。10、STM32 语句:GPIO-ODR=0X02 是怎么执行的?实现什么功能?问:问:是 GPIO

14、 端口的数据存在 ODR 寄存器,该数据与 0x02 异或再存在 ODR 中吗?答:答:ODR 是 stm32 的 IO 端口输出数据寄存器,该寄存器 31-16 位始终读为 0,15-0 位输出数据。GPIO-ODR=0X02 是输出数据与 0x02 异或,即输出数据的第二位如果与 1 相同,该位置 0,反之出 1,因此实现取反,输出数据保存在 ODR,每执行一次输出数据的第二位取反 一次。1010、GPIOGPIO 配置速度配置速度问:问:stm32 中的 GPIO 如果设置成了输入模式,还需要配置 GPIO_Speed 么?答:答:输入模式可以不用配置速度,但是输出模式必须确定最大输出频

15、率。1111、stm32stm32 GPIOGPIO 输入电平检测输入电平检测问:问:GPIO 两个引脚,模式都初始化为输入弱上拉,给其中一个引脚接 4.7V 的电压,IDR 对应的值为1;给另一个引脚接 5.13V 的电压,IDR 对应的值却为 0;答:答:检查一下是否使能了相应 GPIO 的时钟,是否有这样一句RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx,ENABLE);有它就使能了,否则读出的值不可预测。1212、关于、关于 STM32STM32 中中 GPIOGPIO 寄存器寄存器 IDRIDR 和和 ODRODR 数据数据问:问:STM32

16、中 GPIO 寄存器 IDR 和 ODR 数据是不是同步的?为什么我用 GPIO_SetBits 函数设置管脚的时候,IDR 和 ODR 同时改变,怎么使得只改变 ODR 的数据,而不改变 IDR 的数据?谢谢!答:答:IDR 寄存器的数据时实时反映 IO 口的状态,当然设置 ODR,IO 的状态也跟着改变,除非强制人为地设置。比如,ODR 设置为 1,而强制将对应的 IO 口接地,这时 IDR 就和 ODR 不一致;或者将 ODR 设置0,而强制降对应 IO 口接 VCC,这时也不一致。1313、用、用 STM32STM32,有六个,有六个 GPIOGPIO 口(不在同一组)要相同信号输出,请问怎么设置?口(不在同一组)要相同信号输出,请问怎么设置?问:问:例 如 GPIOE 的 pin10 重映射到 TIM1,设置好 TIM1 的 PWM 信号输出;其他的 IO 口如 GPIOA 的pin5、GPIOA 的 pin6、GPIOB 的 pin5、GPIOB 的 pin6、GPIOC 的 pin

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号