为了提高自己,学习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其余全删
上一篇:stm32在rt-thread上的RTC(实时时钟)
下一篇:stm32 外部中断 按键的误触发
推荐阅读最新更新时间:2024-10-24 10:24
设计资源 培训 开发板 精华推荐
- DVK-SFAZ-1-GEVK,基于AX-SFAZ收发器的RCZ4的Sigfox AT开发套件
- LED时钟
- AR0130CSSC00SPCAH-S115-GEVB:1.2 MP Sunex DSL115B 1/3" iLCC CIS HB
- YuzukiCore Pico RP2040 核心板
- 【训练营】一只笨狗
- ESP32-Battery
- NCN4555 1.8V/3V SIM卡电源和电平转换器的典型应用
- 适用于工业应用的 C8051F911 MCU 的 C8051F912-DK、8051 开发系统
- ADR391B 2.5 Vout 微功率、低噪声精密电压基准的典型应用
- LTC2946HDE-1 轨至轨电源、电荷和能量监视器的典型应用