一、新建项目
(1)回到STMCubeMX的主界面,创建新项目
(2)在part name里选择自己的芯片
(3)设置SYS
(4)设置RCC
接下来观察时钟架构,APB2总线的时钟由hse控制,同时在这个界面得把PLLCLK右边选上:
(5)设置引脚,A1,B3, B5, B9(B9 设置为EXTI)
(6)进入 code generate界面,选择生成初始化.c/.h文件
(7)点击project manager,配置好自己的路径和项目名,然后IDE那项改为MDK-ARM,点击generate code创建keil项目
二、keil仿真
(1)打开.uvprojx文件(或者在上一步选择open project)
(2)在main.c中main函数外创建函数
void Delay()
{
long i=0;
for(;i<1000000;i++);
}
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){
if(GPIO_Pin == B9_EXTI_Pin){
//获取B9的电位
GPIO_PinState pinState = HAL_GPIO_ReadPin(B9_EXTI_GPIO_Port,B9_EXTI_Pin);
if(pinState==GPIO_PIN_SET)
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);
Delay(); // 延时1s
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET);
Delay(); // 延时1s
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET);
Delay(); // 延时1s
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_RESET);
}
else
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET);
}
}
}
(3)实物图
(4)运行效果