STM32学习笔记整理之(1)——MDK的设置

来源:互联网 发布:dota2 mac 编辑:程序博客网 时间:2024/06/07 16:20

MDK是一个集成开发环境,编译、调试、下载于一体。现在总结一下新建一个STM32工程的时候需要设置MDK的那些选项。

一、基本设置

1、注释:选中代码-->右键Asvanced-->Comment Selection(Unco mment Selection)

2、查看宏定义、函数、变量定义:右键 GO To Defi nation XXX

3、查看所有文件的函数:工程目录栏选择Functions

4、设置字体背景:Edit-->configuration

 

二、(Options for Target 

1Target:右边的Use MicroLIB微库,串口例程可以使用printf 

2Output Select Folder for Objects编译后输出文件保存的位置

选择需要输出的文件:Debug InformationCreate HEX FileBrowse information 

3ListingSelect Folder listinListing 文件保存的位置

4C/C++

 

5Utilities选项详见其他文档

 

 

三、MDK软件仿真调试

1、设置软件仿真:-->Debug-->选择Use Simulator;(右边的是硬件调试)

-->Target-->Xtal输入晶振8.0MHZ

2开始调试:

3运行工具:,复位、全速运行、单步运行、运行到下一步、运行跳出函数、运行至断点;(代码前面的黑块可设置断点,全速运行到断点暂停)

4watch1工具:输入变量名可查看代码中的变量值(局部变量需要跳进该函数时才能查看)

5USART#1窗口,串口调试终端

6Logic Analyzer:逻辑分析仪,电极setup输入引脚PORTC.3可查看电平状态

问题:

MDK不能软件仿真,在SetSysClockTo72这个函数卡主跳不出去,导致程序无法继续。

解决:Debug选项卡里Dialog DLL空不太对,改成DARMSTM.DLL   -pSTM32F103VE

最后一个不能是107VC的型号,这里可能另有其他原因,暂时用103ZE代替


四、设置工程的外部晶振

由于STM32F10x库官方采用的是默认的外接8MHz晶振,使用外接12MHz的晶振,会造成很多的问题,如USART的波特率不正确,Systick走时不准等问题,在无论是在实际调试还是在软件模拟中都会发现这个情况,下面我们就通过简单的三个步骤就可以让你随意的使用416MHz之内任何频点的晶振,

第一步,打开stm32f10x.h,将 

#define HSE_VALUE    ((uint32_t)8000000) 

修改为: 

#define HSE_VALUE    ((uint32_t)12000000) 

  

第二步,打开system_stm32f10x.c,修改PLL参数,将 

/*  PLL configuration: PLLCLK = HSE * 9 = 72 MHz */ 

RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |                                          RCC_CFGR_PLLMULL)); 

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);  

修改为:   

/*  PLL configuration: PLLCLK = HSE * 6 = 72 MHz */ 

RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |                                          RCC_CFGR_PLLMULL)); 

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);      

至此,原文件已经修改完成,如果你想将主频修改至其他频率,请自行修改。

 

第三步,打开STM32工程,选择Projects-Options for target ***,找到Target标签,外接的晶振默认还是8MHz,我们将外接的晶振参数修改为12MHz,确定保存,再编译,调试,你就会发现,所有的参数都回归的正常轨道。

 

五、芯片选型和宏定义

1C/C++宏定义:STM32F10X_CL:代表的是使用STM32F105STM32F107系列处理器

103的处理器可以使用:STM32F10X_HD(高内存)

原创粉丝点击