微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32在调试过程中常见问题和解决办法

STM32在调试过程中常见问题和解决办法

时间:11-24 来源:互联网 点击:

很多朋友都碰到过这样的问题:在单步调试时始终不能在显示窗口看到某些标志位的变化,应该设置这些标志位的时候,窗口中却显示为0,不少人都错误地认为这是芯片的问题。

我们知道,不少STM32外设的状态寄存器位,可以通过对某些寄存器的读操作而清除(例如I2C的I2C_SR1中的很多标志位),在调试过程中,每当程序停止在设置的断点或单步停止时,调试软件都会自动地读出所有指定的寄存器和存储器中的内容,并刷新窗口的显示,调试软件的这个读操作恰好清除了那些标志位,造成了上面描述的现象。

有几个简单的办法解决这个问题:STM32F102系列http://www.y-ec.com/cpcp/class/?46.html

1. 关闭寄存器或存储器显示窗口。

2. 在寄存器或存储器显示窗口中不显示这些敏感的寄存器。

3. 不要把断点放在对这些敏感的寄存器位操作的前面,以保证这些寄存器位不被调试软件意外地操作。

4. 看官自己添加~~~~~

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

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

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx | RCC_APB2Periph_AFIO, ENABLE);

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

在使用时,一定要注意该要点!

STM32F105系列http://www.y-ec.com/cpcp/class/?33.html

STM32F107系列http://www.y-ec.com/cpcp/class/?34.html

六、用JLINK下载完程序后,程序开始运行并在“Build Output”栏多出如下信息:

* JLink Info: Found SWD-DP with ID 0x1BA01477

* JLink Info: TPIU fitted.

* JLink Info: ETM fitted.

* JLink Info: FPUnit: 6 code (BP) slots and 2 literal slots

Application running ...

在“Project --->Option for Target xxx --->Utilities--->Settings”下,去掉“Reset and Run”复选框即可。STM32F103系列http://www.y-ec.com/cpcp/class/?32.html


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top