CH32V103R8T6下面DBGMCU_Config(DBGMCU_TIM3_STOP, ENABLE);

為什么在CH32V103R8T6運行DBGMCU_Config,直接就進入到

void HardFault_Handler(void)

{

? while (1)

? {

? }

}


您好,若進入HardFault,可參考下帖查找一下問題。注意若使用MounRiver的仿真調(diào)試功能時,不建議程序中進行低功耗操作。后續(xù)若有問題,可郵箱(lzs@wch.cn)溝通。若方便,可將工程發(fā)我具體看一下。

https://www.cnblogs.com/wchmcu/p/17545931.html

?


代碼就是為了能調(diào)試過程讓定時器停止,調(diào)用ch32v30x_dbgmcu.h這個里面void DBGMCU_Config(uint32_t DBGMCU_Periph, FunctionalState NewState);


int main(void)

{

? ? SystemCoreClockUpdate( );

? ? Delay_Init( );

? ? ?DBGMCU_Config(DBGMCU_TIM1_STOP, ENABLE);



image.png



您好,我這邊按照你截圖配置是沒有問題的,如下圖。若方便,可將工程發(fā)至我郵箱看一下。此外,你用的是CH32V103還是V30系列,麻煩你具體確認一下,怎么工程是30系列的工程,這個不通用的。

image.png



是我寫錯mcu型號了,是CH32V305RBT6,工程已經(jīng)發(fā)到lzs@wch.cn


里面訪問地址也是對的,外部中斷和定時器都能正常工作,只是因為調(diào)試斷點監(jiān)控數(shù)據(jù)希望定時能停止,希望能停止定時器。

而且我通過MounRiver Studio軟件外設看,寄存器地址好像和資料對不上,另外也不能在里面手動修改寄存器的值

1713333766078.png


image.png


void __set_DEBUG_CR(uint32_t value)

{

? ? __asm volatile("csrw 0x7C0, %0" : : "r"(value));

}

image.png


剛才我發(fā)現(xiàn)是不是mcu進入到什么狀態(tài)才能訪問,直接調(diào)用這個函數(shù),就直接會進入到void HardFault_Handler(void)

uint32_t __get_MEPC(void)

{

? uint32_t result;


? __ASM volatile ( "csrr %0," "mepc" : "=r" (result) );

? return (result);

}

image.png


您好,mepc為csr寄存器,調(diào)用該函數(shù)需要在機器模式下,可修改啟動文件中mstatus寄存器的值,可將其修改為0x7888試一下。如下圖

image.png


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频