CH32V003F4P6 點亮多個LED問題

void GPIO_Toggle_INIT(void)

{

? ? GPIO_InitTypeDef GPIO_InitStructure = {0};


? ? RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

? ? GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_6|GPIO_Pin_5|GPIO_Pin_4|GPIO_Pin_3|GPIO_Pin_2|GPIO_Pin_1|GPIO_Pin_0;

? ? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

? ? //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

? ? GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

? ? GPIO_Init(GPIOD, &GPIO_InitStructure);

}


/*********************************************************************

?* @fn? ? ? main

?*

?* @brief? ?Main program.

?*

?* @return? none

?*/

int main(void)

{

? ? u8 i = 0;


? ? NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

? ? SystemCoreClockUpdate();

? ? Delay_Init();

#if (SDI_PRINT == SDI_PR_OPEN)

? ? SDI_Printf_Enable();

#else

? ? USART_Printf_Init(115200);

#endif

? ? printf("SystemClk:%d\r\n", SystemCoreClock);

? ? printf( "ChipID:%08x\r\n", DBGMCU_GetCHIPID() );

? ? printf("GPIO Toggle TEST\r\n");

? ??

? ? GPIO_Toggle_INIT();


? ? while(1)

? ? {

? ? ? ? Delay_Ms(250);

? ? ? ? (i == 0) ? (i = Bit_SET) : (i = Bit_RESET);

? ? ? ? //GPIO_WriteBit(GPIOD, GPIO_Pin_0, i);

? ? ? ? //GPIO_WriteBit(GPIOD, GPIO_Pin_1, i);

? ? ? ? GPIO_WriteBit(GPIOD, GPIO_Pin_2, i);


? ? }

}

嗯,一般的單片機(jī)點燈,配置相關(guān)GPIO腳之后,然后寫高低電平就可以了,我測試了一下點燈,點一個還好,同時點兩個就有問題了spacer.gif

代碼如上,兩個LED分別接在PD0,PD2腳,

如果只是注釋掉“?GPIO_WriteBit(GPIOD, GPIO_Pin_2, i);”兩個LED交替亮滅,

如果只是注釋掉“?GPIO_WriteBit(GPIOD, GPIO_Pin_0, i);”,PD0上LED長亮。


如果在GPIO_Toggle_INIT();之后插入:GPIO_WriteBit(GPIOD, GPIO_Pin_2, 1);

while 里面?GPIO_WriteBit(GPIOD, GPIO_Pin_0, i); PD0上LED閃爍


如果在GPIO_Toggle_INIT();之后插入:GPIO_WriteBit(GPIOD, GPIO_Pin_0, 1);

while 里面?GPIO_WriteBit(GPIOD, GPIO_Pin_2, i); PD2上LED閃爍


問題來了,同時要兩個LED同時亮,同時滅,怎么實現(xiàn)?

我反復(fù)試了以上代碼,只能把一個寫高電平讓LED不亮,另一個才能正??刂屏翜?/p>


您好,附件為兩個LED同時亮滅例程,可以參考一下。此外,PD7引腳為復(fù)位引腳,PD5為例程默認(rèn)串口打印引腳,PD1為SWIO引腳,使用時注意合理配置。

icon_rar.gifCH32V003 GPIO_LED.zip



好的,我在使用GPIO的時候就避開了你說的那幾個腳


你給的代碼我剛剛試了,只有PD0上的LED能閃爍,PD2亮不了


您好,我這邊測試是沒問題的,GPIO翻轉(zhuǎn)波形如下,若你那邊有問題,可以檢查一下硬件是否存在問題,后續(xù)若有問題,可郵箱(lzs@wch.cn)溝通。

image.png


我使用的是開發(fā)板,單個LED單獨測試是沒有問題的,但是同時點亮兩個就不行




用U口供電試試,可能是供電問題


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

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