我选用的是厂家给的例程如下, 单步仿真时,B9给高电平, LED灯闪亮(应该常亮),B9给低电平 LED灯灭。
#include "main.h"
#include "cw32l083_gpio.h"
#define LED_GPIO_PORT CW_GPIOB
//#define LED_GPIO_PINS GPIO_PIN_8 | GPIO_PIN_9
#define LED_GPIO_PINS GPIO_PIN_9
#define KEY_GPIO_PORT CW_GPIOA
#define KEY_GPIO_PINS GPIO_PIN_1 | GPIO_PIN_2
GPIO_InitTypeDef GPIO_InitStruct; //定义一个IO口变量
int32_t main(void)
{
char i,j;
//GPIO_InitTypeDef GPIO_InitStruct;
__RCC_GPIOA_CLK_ENABLE(); // 使能GPIO的配置时钟
__RCC_GPIOB_CLK_ENABLE();
GPIO_InitStruct.IT = GPIO_IT_RISING | GPIO_IT_FALLING;//上升下降
GPIO_InitStruct.Mode = GPIO_MODE_INPUT; //定义为输入
GPIO_InitStruct.Pins = KEY_GPIO_PINS; //A2定义为按键
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; //定义为高速
//GPIO_Init(KEY_GPIO_PORT, &GPIO_InitStruct); //初始化A2按键
GPIO_InitStruct.IT = GPIO_IT_NONE; //缺省
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //定义为推挽输出
//GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; //定义为推挽输出
GPIO_InitStruct.Pins = LED_GPIO_PINS; //A8,A9定义为LED灯
GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct); //初始化LED灯
GPIOA_INTFLAG_CLR(bv1 | bv2); //清除PA00中断标志并使能NVIC
//NVIC_EnableIRQ(GPIOA_IRQn); //使能
//----------------------------------------------------------------------
//相关程序在中断服务GPIOA_IRQHandler中进行处理
while(1)
{
for(i=0;i<3;i++)
PB09_SETHIGH();
//REGBITS_CLR( CW_GPIOB->ODR , LED_GPIO_PINS);
//GPIO_TogglePin(CW_GPIOB,LED_GPIO_PINS);
for(j=0;j<3;j++);
//REGBITS_SET( CW_GPIOB->ODR , LED_GPIO_PINS);
PB09_SETLOW();
}
}
|