.安装软件、驱动

JLINK驱动、PL2303驱动、MDK4.7(装完破解)

.源码编译完要用到的工具

烧录工具MCUISP、串口调试助手

.KEIL建工程模板(2种)

(1)寄存器开发:工程文件夹下建2文件夹命名“USER”“SYSTEM”———新建工程到“USER” 选择‘是’———拷贝例子程序中的“SYSTEM”覆盖———KEIL中右键Target1选Manage Components,Groups下建“USER”“SYSTEM”———为“SYSTEM”添加delay.c sys.c usart.c———Project下Options for Target ‘target1’_C/C++中‘Include Paths’添加3个C文件的头文件———Output下勾选‘Create HEX File’  OK!

测试代码(STM32F103RB):

int main (void)
{
u8 t=0;
Stm32_Clock_Init(9);
delay_init(72);
uart_init(72,9600);
while(1)
{
printf("t:%d\n",t);
delay_ms(500);
t++;
}

}

(2)库函数开发:

①建STM32F10x_FWLib:拷STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver下src、inc文件夹

②建CORE:拷1.STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下core_cm3.c和core_cm3.h

2.STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下所有文件(s..x_md.s中等容量,ls小,hs大)

③建USER:拷1.STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x中stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h

2.STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下4个文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h

④右键点击Target1选Manage Components将Target名字改掉,Groups栏删掉一个,建USER,CORE,FWLIB,

⑤为1.FWLIB添加STM32F10x_FWLib/src下要用到的外设的库文件

2. CORE添加core_cm3.c,startup_stm32f10x_md.s

3. USER添加main.c,stm32f10x_it.c,system_stm32f10x.c

⑥魔术棒c/c++选项.1.Include Paths添加3个目录,注意STM32F10x_FWLib的是定位到inc文件夹

2.C/C++__Preprocessor Symbols__Define中填上“STM32F10X_MD,USE_STDPERIPH_DRIVER”(不要引号STM32F10X_MD大容量STM32F10X_LD小容量)

3.Output勾选HEX选项

⑦覆盖掉main.c中代码

#include "stm32f10x.h"
GPIO_InitTypeDef GPIO_InitStructure;

int main(void)
{
SystemInit();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_2;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);
while (1)
{
/* Set PD0 and PD2 */
GPIOD->BSRR = 0x00000005;
/* Reset PD0 and PD2 */
GPIOD->BRR = 0x00000005;
}
}

#ifdef USE_FULL_ASSERT
void assert_failed(uint8_t* file, uint32_t line)
{
while (1)
{
}
}
#endif

⑧OK!

最新文章

  1. 使用Delphi收发GMail的邮件
  2. Mongodb源代码阅读笔记:Journal机制
  3. POJ2796 Feel Good 单调栈
  4. 最近写了一个红包雨的小功能,但感觉自己的js还有很多地方可以提高,望大神们可以帮忙指点一二
  5. json2form已改名为AForm
  6. Java中HashMap排序
  7. css中var函数
  8. 总结QueueUserWorkItem传参的几种方式
  9. 列表:一个打了激素的数组2 - 零基础入门学习Python011
  10. ScrollView中添加ListView
  11. 浅谈DevExpress<六>:为chart创建动态数据源
  12. 如何让msvsmon.exe 以服务方式运行
  13. JavaScript Date对象更进一步
  14. Java学习笔记30(集合框架四:List接口)
  15. iOS开发手记-仿QQ音乐播放器动态歌词的实现
  16. 设计模式(14)--Command(命令模式)--行为型
  17. 《Nginx - location配置》
  18. sql server 修改表字段信息
  19. luogu P2801 教主的魔法
  20. c++环境配置 Eclipse+mingw-get-setup

热门文章

  1. 创建私有yum仓库
  2. How to recover if NMC cound not connect
  3. Python入门之元组
  4. P1001 A+B Format
  5. 第1节 storm编程:9、storm与kafka的整合
  6. maven更新JRE更改JSE1.5
  7. 解题报告+板子:luogu P3387 【模板】缩点
  8. GoJS 友情链接
  9. 仿照Android标准API写的各种形式的弹出框
  10. 腾讯2019秋招--小q爬塔(dp)