tag 标签: stm32f1

相关博文
  • 热度 15
    2015-10-5 15:02
    1612 次阅读|
    0 个评论
    软件环境: IAR Embedded Workbench for ARM v7.4 + ST 官方库 v3.5 硬件环境: STM32F103C8 开发板 仿真器   : ST-Link   这里以 LED 流水灯为例。 一、准备本地目录。 1. 在本地硬盘建立 LED 文件夹,在 LED 文件夹中建立 CMSIS 、 FWlib 和 Project 三个子文件夹,在 CMSIS 文件夹下再建立 startup 子文件夹,在 Project 文件夹下再建立 EWRAM 子文件夹,如图 1 所示(请先注意红圈中的内容,其他暂时忽略)。之所以这样,是受 ST 官方例程影响。 图 1 2. 将 ST 官方库里面 \STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 目录下的两个文件夹 inc 和 src 复制到 FWlib 文件夹中,如图 1 所示。 这些都是官方的芯片外设驱动相关的源码,其中头文件在 inc 中。 3. 将 ST 官方库里面 \STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\iar 目录中的文件复制到 CMSIS 下的 startup 文件夹中。 启动文件所在目录,主要用于初始化 SP 、 PC 及设置中断向量表。 4. 1 )将 ST 官方库里面 \STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport 目录下的 core_cm3.c 和 core_cm3.h 文件复制到 CMSIS 文件夹中。    2 )将 ST 官方库里面 \STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 目录下 stm32f10x.h 、 system_stm32f10x.c 和 system_stm32f10x.h 文件复制到 CMSIS 文件夹中。    3 )将 IAR 安装目录下(默认为 C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.2 ) \arm\CMSIS\Include 中 core_cmFunc.h 和 core_cmInstr.h 文件复制到 CMSIS 文件夹中。 这些都是 ARM 公司的与芯片生产厂商无关的 Cortex-M 内核相关的硬件抽象层文件。 5. 将 ST 官方库里面 \STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 中的 main.c 、 stm32f10x_conf.h 、 stm32f10x_it.c 和 stm32f10x_it.h 复制到 Project 文件夹中。 项目的主文件、中断处理文件等。 二、设置 IAR 1. 启动 IAR ( EWRAM ),新建 workspace ,如图 2 图 2 2. 新建项目,点击 project 菜单 -Creat New Project ,弹出如图 3 所示对话框,选择空项目( Empty Project ), OK. 生成的项目文件保存在前文所述的 Project 文件夹中。 图 3 3. 在左侧的项目结构中,通过 Add Group 的方式添加 FWlib 、 Startup 、 SystemFile 和 User 四个 Group. 因为本例程是以 LED 为例,在 FWlib 中添加 FWlib 文件夹中的 stm32f10x_gpio.c 和 stm32f10x_rcc.c ;因为硬件是 STM32F103C8 ,属于中密度芯片,所以在 startup 中添加 \CMSIS\startup 文件夹中的 startup_stm32f10x_md.s ;在 SystemFile 中添加 CMSIS 文件夹中的 core_cm3.c 和 system_stm32f10x.c ;在 User 中添加 main.c 和 stm32f10x_it.c ,因为本例程中没有使用中断,所以 stm32f10x_it.c 也可以不用包含进来,当然,考虑到以后使用这个例程作为模板,所以还是将该文件包含在里面。 4. 在 project-option 或通过 Alt+F7 ,打开本项目的设置选项。 1 )在 General 里面,选择芯片(本例程是 STM32F103C8 ),如图 4 所示。 图 4 2 )在 C/C++ Complier 中的 Preprocessor 中,添加头文件的目录,即前文所述的 \FWlib\inc 、 CMSIS 和 Project 文件夹。另外,还要在 Define Sysbols 中添加如下两行: USE_STDPERIPH_DRIVER STM32F10X_MD 图 5 3 )在 Output Converter 中进行如图 6 设置。 图 6 4 )在 Debugger 中将仿真器设置为 ST-Link ,如图 7 所示;另外在 Download 中勾选 flash 选项目,如图 8 所示。 图 7 图 8 三、新建 LED.h 和 LED.c 文件,并添加到 User 中。编写相关代码,最后进行 Rebuild All ,如图 9 所示。 图 9 如果程序编写没有问题,最后提示是没有错误的。 四、连接好硬件,点击图 10 所示的下载按钮,下载程序到芯片中。 图 10 本例程中在附件中,供参考。  
  • 热度 17
    2015-10-3 09:23
    1862 次阅读|
    1 个评论
    因为项目中要用到两个串口,所以做了这次双串口的测试。   下图是测试结果,说明功能上基本没有问题。   1 ) 因为使用了中断,所以要注意两个中断的优先级。 2 ) USART1 和 USART2 所在的总线不一样,可以参考下图。 USART1 在 APB2 , USART2 在 APB1 ,所以在初始化时要注意。   附件是参考代码。
相关资源