学习日志
姓名:陈长稳 日期:7.26
今日学习任务
今日主要学习NVIC中断基础介绍,调试功能printf功能配置介绍以及EXTI基础及按键实现
今日任务完成情况
基本完成了NVIC中断基础介绍,调试功能printf功能配置介绍以及EXTI基础及按键实现的学习,并用中断延时程序完成了控制一个灯闪烁,以及通过按键点亮LED灯。
今日开发中出现的问题汇总
1.未对I/O口进行初始化
2.定义端口结构体变量时,函数名错误
3.在创建新的函数时,未把该函数文件放在固件库模板的user文件夹下,导致编译错误
今日未解决问题
如何快速的在已有程序模板程序中找到自己所需的函数和相关的寄存器配置。
今日开发收获
1.每个GPI/O 端口有两个32 位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR),一个32 位置位/复位寄存器(GPIOx_BSRR),一个16 位复位寄存器(GPIOx_BRR)和一个32 位锁定寄存器(GPIOx_LCKR)。
2.外部中断的一般配置步骤:
①使能SYSCFG时钟及IO口时钟: RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); ② 初始化IO口为输入。 GPIO_Init();
③设置IO口与中断线的映射关系。 void SYSCFG_EXTILineConfig();
④初始化线上中断,设置触发条件等。 EXTI_Init();
⑤配置中断分组(NVIC),并使能中断。 NVIC_Init(); ⑥ 编写中断服务函数。 EXTIx_IRQHandler();
⑦清除中断标志位 EXTI_ClearITPendingBit();
自我评价
经过这几天的32单片机基础知识的学习,对32单片机的认识有了一定的深入,能够通过固件库模板并结合手册来编写简单的程序,例如通过按键点亮开发板上的LED灯。