[英]STM32F0Discovery TIM1_CC_IRQHandler issue
我目前正在嘗試調試我的項目,並且遇到了一個小問題。 我們正在使用Ride7運行調試器,並在SWD引腳上將RLink連接到我們的板上。 當我們運行代碼時,我們只能停留在一點,而設備只能停留在一點。 我們將其暫停,發現程序計數器指向TIM1_CC_IRQHandler。 我們將其解釋為timer1的捕獲比較的標志。 但是,我們甚至沒有使用捕獲比較模式。 我們甚至從未初始化計時器1。微控制器試圖做什么?如何克服它?
我們嘗試逐步執行該程序,但無法跟上PC進入停滯狀態。 我們已經運行了它,它通過了我們的主while循環,但是在第二遍時,它丟失了。 然后,我們將其重置,發現PC指向RESET_HANDLER。 這發生在printf()調用中; 我不知道它要做什么。
代碼是否有幫助:
#include <stdio.h>
#include "device_initialization.h"
void main(void)
{
uint32_t time = 0;
//initTIM();
//initADC();
USART_Config();
initGPIO();
while(1)
{
time++;
printf("\n\rUSART Printf Example: retarget the C library printf function to the USART\n\r");
/* Loop until the end of transmission */
/* The software must wait until TC=1. The TC flag remains cleared during all data
transfers and it is set by hardware at the last frame’s end of transmission*/
while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET)
{
}
while(time<1000000)
{
time++;
}
}
}
在微控制器中使用printf()對我來說是新的。 我認為您應該得到一個編譯或鏈接器錯誤。 我看到注釋行//initTIM();
因此,我建議您檢查計時器初始化方法(NVIC結構設置)。
循環延遲僅一次運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.