stm32f103应用rt-thread 1.2.5搭建的Keil工程

为了提高自己,学习stm32和freescale.


使用的硬件是公司的一些产品,开发人员已经基于RTX操作系统开发完成,为了提高一下(本人非开发),也有一些代码参考,故决定从rtx系统移植到rt-thread系统上


刚接触rt-thread不久,发现网上也有一些rt-thread的工程,但基本上都与原版的rt-thread有改动,为了学习rt-thread且希望尽可能少的改动,在此记录下学习的过程..



搭建的工程没有什么可以说的,运行后发送串口输出是乱码,找了一下原因是晶振不匹配,其实rt-thread上有讲,链接找不到了,贴下之前保存的记录


工程下载地址:http://pan.baidu.com/s/1o7VSfaE


1.修改晶振(官网的默认使用8M的外部晶振,我的板子是12M的):

   第一步,打开stm32f10x.h,将 
   #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */ 
  修改为: 
   #define HSE_VALUE    ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */ 
  第二步,打开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.

2.修改board.h里的SRAM大小(官方的默认是64K):

  #define STM32_SRAM_SIZE         20
  #define STM32_SRAM_END          (0x20000000 + STM32_SRAM_SIZE * 1024)

3.修改led引脚;打开led.c文件:

   #else
  #define led1_rcc                    RCC_APB2Periph_GPIOE
  #define led1_gpio                   GPIOE
  #define led1_pin                    (GPIO_Pin_2)
  #define led2_rcc                    RCC_APB2Periph_GPIOE
  #define led2_gpio                   GPIOE
  #define led2_pin                    (GPIO_Pin_3)

(1). 打开BSP文件夹,把除了stm32f10x的文件夹外,其余全部删除

(2). 打开libcpu文件夹,进入arm,保留common,cortex-m3,其余全部删除;

(3). 打开libcpu,除了arm文件夹,其余全删

(4). 保留bsp、components 、include、 src、 libcpu其余全删



你可能感兴趣的:(RT-thread,STM32)