本帖最后由 jinglixixi 于 2023-9-28 19:31 编辑
在探索新入手开发板的过程中,由GPIO口开始是最高效的。由于CW32L031开发板上已配备了LED和KEY,因此在编程测试时可直接利用它们来进行。对于开发板上的LED和KEY,其电路连接如图1所示。 图1 相关电路
在使用GPIO口时,主要涉及2个方面,即输入与输出。 利用LEY可完成输出模式的测试,有KEY则可完成对输入模式的测试。
下面的主程序就是实现以按键来控制LED的作用,其内容如下: - int32_t main(void)
- {
- GPIO_InitTypeDef GPIO_InitStruct = {0};
- RCC_HSI_Enable(RCC_HSIOSC_DIV6);
- __RCC_GPIOC_CLK_ENABLE();
- GPIO_InitStruct.IT = GPIO_IT_NONE;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pins = LED_GPIO_PINS;
- GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);
- GPIO_InitStruct.Pins = GPIO_PIN_1 | GPIO_PIN_2;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- GPIO_Init(CW_GPIOA, &GPIO_InitStruct);
- while (1)
- {
- if(GPIO_ReadPin(CW_GPIOA, GPIO_PIN_1)==0)
- {
- GPIO_WritePin(CW_GPIOB, GPIO_PIN_8, GPIO_Pin_SET);
- }
- else
- {
- GPIO_WritePin(CW_GPIOB, GPIO_PIN_8, GPIO_Pin_RESET);
- }
-
- if(GPIO_ReadPin(CW_GPIOA, GPIO_PIN_2)==0)
- {
- GPIO_WritePin(CW_GPIOB, GPIO_PIN_9, GPIO_Pin_SET);
- }
- else
- {
- GPIO_WritePin(CW_GPIOB, GPIO_PIN_9, GPIO_Pin_RESET);
- }
- }
- }
图2 控制效果1
图3 控制效果2
|