CH32V103R8帶燒錄器可以工作,停止調(diào)試立刻死機(jī)
void?app_clk_init()
{
????RCC_ClocksTypeDef?RCC_Clocks;
????//RCC_PLLConfig(RCC_PLLSource_HSE_Div1,?RCC_PLLMULL6);//12M*6
????//這版混進(jìn)了一個(gè)16M的晶振進(jìn)去,搞得只能用這個(gè)參數(shù)了
????RCC_PLLConfig?(RCC_PLLSource_HSE_Div2,?RCC_PLLMULL9);?//12M*6
????RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);//72/1.5
????RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);??????//sysclock?72M
????RCC_HCLKConfig(RCC_SYSCLK_Div1);????????//main?clock?72M

????RCC_HSEConfig(RCC_HSE_ON);
????while(RCC_WaitForHSEStartUp()?==?NoREADY);
????
????while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)?==?RESET);
????RCC_PLLCmd(ENABLE);

????RCC_PCLK1Config(RCC_HCLK_Div1);?//72M
????RCC_PCLK2Config(RCC_HCLK_Div1);?//72M
????RCC_ADCCLKConfig(RCC_PCLK2_Div2);???//36M
????RCC_ClockSecuritySystemCmd(ENABLE);
//????RCC_GetClocksFreq(&RCC_Clocks);
}

/*********************************************************************
?*?@fn??????main
?*
?*?@brief???Main?program.
?*
?*?@return??none
?*/
int?main(void)
{
????GPIO_InitTypeDef?GPIO_InitStruct;

????NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
//????SystemInit();
//????SystemCoreClockUpdate();
????app_clk_init();

//????Delay_Init();
//????USBHD_RCC_Init(?);
//????USBHD_Device_Init(?ENABLE?);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,?ENABLE);

????
????GPIO_InitStruct.GPIO_Pin?=?GPIO_Pin_9;
????GPIO_InitStruct.GPIO_Mode?=?GPIO_Mode_Out_PP;
????GPIO_InitStruct.GPIO_Speed?=?GPIO_Speed_2MHz;
????GPIO_Init(GPIOC,?&GPIO_InitStruct);
????


//????xTaskCreate((TaskFunction_t?)task2_task,
//????????????????????????(const?char*????)"task2",
//????????????????????????(uint16_t???????)TASK2_STK_SIZE,
//????????????????????????(void*??????????)NULL,
//????????????????????????(UBaseType_t????)TASK2_TASK_PRIO,
//????????????????????????(TaskHandle_t*??)&Task2Task_Handler);
//
//????xTaskCreate((TaskFunction_t?)task1_task,
//????????????????????(const?char*????)"task1",
//????????????????????(uint16_t???????)TASK1_STK_SIZE,
//????????????????????(void*??????????)NULL,
//????????????????????(UBaseType_t????)TASK1_TASK_PRIO,
//????????????????????(TaskHandle_t*??)&Task1Task_Handler);
//????vTaskStartScheduler();
????
//????USART_Printf_Init(115200);
//????printf("SystemClk:%d\r\n",?SystemCoreClock);

//????printf("This?is?printf?example\r\n");

????while(1)
????{
//????????GPIO_ResetBits(GPIOC,?GPIO_Pin_9);
//????????Delay_Ms(1000);
????????GPIO_SetBits(GPIOC,?GPIO_Pin_9);
//????????Delay_Ms(1000);
????}
}

這是初始代碼,啟動(dòng)文件內(nèi)的

? ??? li t0, 0x88
? ?? ?csrs mstatus, t0

中斷與官方給的參數(shù)一致。

目前遇到的問(wèn)題是僅能在調(diào)試過(guò)程中運(yùn)行,一旦停止gdb,似乎芯片會(huì)立刻掛起,導(dǎo)致卡住。直接供電也是如此。

電路為最小系統(tǒng),由立創(chuàng)商城基礎(chǔ)修改而來(lái)

Snipaste_2023-02-25_23-41-19.png

目前暫時(shí)使用主時(shí)鐘16MHZ并且修改了ch32庫(kù)文件的HSE_VALUE的參數(shù)

Snipaste_2023-02-25_23-44-37.png

已經(jīng)完成的前期排查:

  1. 去除了代碼中幾乎所有的冗余項(xiàng)。關(guān)閉了printf。

  2. 關(guān)閉了代碼的優(yōu)化,完成最基礎(chǔ)的高低電平。

  3. 去掉了R2、R10電阻并且短接當(dāng)前的 電路。

  4. 測(cè)量R4,上電后依然為3.3V


目前遇到現(xiàn)象:

  1. 在接入電源后,電源指示燈亮起,但是運(yùn)行指示燈無(wú)反應(yīng)。

  2. 使用調(diào)試器上電,電源指示燈亮起,但是運(yùn)行指示燈無(wú)反應(yīng)

  3. 使用調(diào)試器調(diào)試,運(yùn)行時(shí)電源指示燈常量,可以正常運(yùn)行調(diào)試,并且指示燈正常反應(yīng)

  4. 停止調(diào)試器的gdb進(jìn)程,運(yùn)行指示燈立刻熄滅(正常代碼應(yīng)為長(zhǎng)亮)。

  5. 使用調(diào)試器發(fā)送“運(yùn)行”策略,可以正常運(yùn)行,但是斷掉調(diào)試器與上文一致。


初次試水,還請(qǐng)各位幫忙指點(diǎn)一二


您好,在我們CH32V103 EVT中有GPIO例程,你可以在該例程基礎(chǔ)上修改一下,改成PC9引腳,測(cè)試一下你的板子是否有問(wèn)題,可以先不用外部晶振,直接用內(nèi)部晶振測(cè)試,如下圖1,使用相關(guān)宏定義即可。此外,可以在你的例程中使用內(nèi)部晶振測(cè)試一下。注意,若程序中有用到中斷函數(shù),注意加中斷聲明。若方便,可將你的工程發(fā)至我的郵箱(lzs@wch.cn),這邊在測(cè)試板跑一下,順便看一下程序。

image.png

圖1


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

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