银杏科技有限公司旗下技术文档发布平台 | |||
技术支持电话 | 0379-69926675-801 | ||
技术支持邮件 | Gingko@vip.163.com | ||
版本 | 日期 | 作者 | 修改内容 |
---|---|---|---|
V1.0 | 2020-03- | gingko | 初次建立 |
1.在主界面选择File–>New Project 或者直接点击ACCEE TO MCU SELECTOR 。
2.出现芯片型号选择,搜索自己芯片的型号,双击型号,或者点击Start Project进入配置,在搜索栏的下面,提供的各种查找方式,可以选择芯片内核,型号,等等,可以帮助你查找芯片。本实验选取的芯片型号为:STM32H750IBKx。
3.配置RCC,使用外部时钟源。
4.时基源选择SysTick。
5.将PA10,PB7,PB8设置为GPIO_Output。
6.将ARM_KEY对应的引脚PH7设置为GPIO_Intput。
7.引脚模式配置。
8.时钟源设置,选择外部高速时钟源,配置为最大主频。
9.工程文件的设置, 这里就是工程的各种配置 我们只用到有限几个,其他的默认即可 IDE我们使用的是 MDK V5.27。
10.点击Code Generator,进行进一步配置。
int main(void) { HAL_Init(); SystemClock_Config(); i2c.initialize(); axp152.initialize(); axp152.set_dcdc1(3500);//[ARM & FPGA BK1/2/6 &OTHER] axp152.set_dcdc2(1200);//[FPGA INT & PLL D] axp152.set_aldo1(2500);//[FPGA PLL A] axp152.set_dcdc4(3300);//[POWER_OUTPUT] axp152.set_dcdc3(3300);//[FPGA BK4][Adjustable] axp152.set_aldo2(3300);//[FPGA BK3][Adjustable] axp152.set_dldo1(3300);//[FPGA BK7][Adjustable] axp152.set_dldo2(3300);//[FPGA BK5][Adjustable] MX_GPIO_Init(); LED_ON; while (1) { /* 按键扫描函数在stm32h7xx_it.c文件中,每20ms扫描一次 */ /* 按键处理函数,每按下一次,LED状态改变一次 */ key.process(); } }
static void process(void) { static int cnt = 0; if(key.value != key.bak_value){ //按键处理 switch(key.value){ case ARM_KEY: if(cnt ++ % 2){ LED_ON; }else{ LED_OFF; } break; } key.bak_value = key.value; } }
static unsigned char read(void) { static unsigned char key_state = 0; static unsigned int key_value; static unsigned char key_return = 0; switch(key_state){ case 0://按键被按下 if(!(ARM_KEY_VALUE)){ key_state ++; key_value = ARM_KEY_VALUE; } break; case 1://消抖处理 if(key_value != ARM_KEY_VALUE){ key_state --; }else{ switch(key_value){ case 0x00: key_return = ARM_KEY; break; } key_state ++; } break; case 2://按键释放 if(ARM_KEY_VALUE == 0x01){ key_state = 0; key_return = KEY_NONE; } break; } return key_return; }