银杏科技有限公司旗下技术文档发布平台 | |||
技术支持电话 | 0379-69926675-801 | ||
技术支持邮件 | Gingko@vip.163.com | ||
版本 | 日期 | 作者 | 修改内容 |
---|---|---|---|
V1.0 | 2020-03-30 | 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. 引脚模式配置
7. 配置定时器
8. 时钟源设置,选择外部高速时钟源,配置为最大主频
9. 工程文件的设置, 这里就是工程的各种配置,我们只用到有限几个,其他的默认即可 IDE我们使用的是 MDK5
10. 点击Code Generator,进行进一步配置
int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); //GPIO初始化 MX_TIM3_Init(); //TIM3初始化 HAL_TIM_Base_Start_IT(&htim3); //开启定时器中断 While(1) { } }
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { static int counter = 0; // //定时500ms,每隔500ms三色LED灯闪烁一次 if(htim->Instance == TIM3) { if(counter % 3 == 0){ LED_RED_ON; LED_BLUE_OFF; LED_GREEN_OFF; }else if(counter % 3 == 1){ LED_RED_OFF; LED_BLUE_ON; LED_GREEN_OFF; }else if(counter % 3 == 2){ LED_RED_OFF; LED_BLUE_OFF; LED_GREEN_ON; } counter ++; } } }
TIM_HandleTypeDef htim3;
typedef struct { TIM_TypeDef *Instance;//TIM寄存器基地址 TIM_Base_InitTypeDef Init; //TIM初始化结构体 HAL_TIM_ActiveChannel Channel;//TIM活动通道 DMA_HandleTypeDef *hdma[7]; HAL_LockTypeDef Lock; //TIM锁定参数 __IO HAL_DMA_StateTypeDef State; } TIM_HandleTypeDef;
typedef struct { uint32_t Prescaler; //定时器预分频系数 uint32_t CounterMode; //定时器计数模式 uint32_t Period; //定时器自动重载值 uint32_t ClockDivision; //时钟分频因子 uint32_t RepetitionCounter; //重复计数值 uint32_t AutoReloadPreload; //自动重新加载 } TIM_TimeBaseInitTypeDef;