银杏科技有限公司旗下技术文档发布平台 | |||
技术支持电话 | 0379-69926675-801 | ||
技术支持邮件 | Gingko@vip.163.com | ||
版本 | 日期 | 作者 | 修改内容 |
---|---|---|---|
V1.0 | 2020-1-16 | gingko | 初次建立 |
1. 新建工程:在主界面选择File–>New Project 或者直接点击ACCEE TO MCU SELECTOR 2. 出现芯片型号选择,搜索自己芯片的型号,双击型号,或者点击Start Project进入配置 在搜索栏的下面,提供的各 种查找方式,可以选择芯片内核,型号,等等,可以帮助你查找芯片。本实验选取的芯片型号为:STM32F407IGTx。 3. 配置RCC,使用外部时钟源 4. 配置调试引脚 5. 将LED对应的3个引脚(PI5,PI6,PI7)设置为GPIO_Output 6. 将ARM_KEY对应的引脚(PH15)设置为GPIO_Input 7. 引脚模式配置
8. 时钟源设置,选择外部高速时钟源,配置为最大主频 9. 工程文件的设置, 这里就是工程的各种配置 我们只用到有限几个,其他的默认即可 IDE我们使用的是 MDK5 10. 点击Code Generator,进行进一步配置
自行选择方式即可
按键简介
按键消抖
1. 主函数
int main(void) { static int led_work_status = 0; //三色LED灯工作状态 static int key_status = KEY_UP; //按键松开状态 HAL_Init(); //重置所有外围设备,初始化Flash接口和Systick。 SystemClock_Config(); //配置系统时钟 MX_GPIO_Init(); //初始化所有已配置的外围设备 LED_RED_ON; //初始化LED状态 while (1) //按键按一次切换一次LED状态 { if(ARM_KEY_STATE == KEY_UP)key_status = KEY_UP; if(key_status == KEY_UP){ if(ARM_KEY_STATE == KEY_DOWN){ HAL_Delay(20); //按键消抖 if(ARM_KEY_STATE == KEY_DOWN){ key_status = KEY_DOWN; led_work_status += 1; if(led_work_status > 2)led_work_status = 0; switch(led_work_status){ //操作LED case 0: LED_RED_ON; LED_GREEN_OFF; LED_BLUE_OFF; break; case 1: LED_RED_OFF; LED_GREEN_ON; LED_BLUE_OFF; break; case 2: LED_RED_OFF; LED_GREEN_OFF; LED_BLUE_ON; break; default: break; } } } } } }
2. GPIIO初始化 以下是按键的GPIO初始化程序。
GPIO_InitStruct.Pin = ARM_KEY_Pin; //设置连接按键的IO端口 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; //设置端口为输入模式 GPIO_InitStruct.Pull = GPIO_PULLUP; //设置端口为上拉输入 HAL_GPIO_Init(ARM_KEY_GPIO_Port, &GPIO_InitStruct);