好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于STM32F103嵌入式实验指导书.doc

8页
  • 卖家[上传人]:鲁**
  • 文档编号:459738626
  • 上传时间:2022-12-16
  • 文档格式:DOC
  • 文档大小:101.50KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • .实验一、STM32的开发环境与简单工程一、实验目的1、熟悉STM32开发板的开发环境;2、熟悉MDK创立和配置STM32工程工程的根本流程;3、熟悉STM32官方库的应用;4、规编程格式二、实验容本次实验配置MDK集成开发环境,新建一个简单的工程文件,添加STM32官方库并配置工程,编译运行这个工程文件下载已经编译好的文件到开发板中运行学会在程序中设置断点,观察系统存和变量,为调试应用程序打下根底三、预备知识根本单片机硬件知识、单片机软件编程语言、程序创立和调试的根本方法四、实验设备及工具硬件:STM32开发平台软件:STM32官方库;PC机操作系统Windows 98、Windows 2000或Windows XP;KEIL MDK集成开发环境;串口转usb驱动五、实验步骤1、在准备存放工程文件的目录下创立一新文件夹,命名为Proj_GPIO;在Proj_GPIO文件夹里面分别再创立四个文件夹:CMSIS、USER、LIB、OBJ其中CMSIS〔Cortex Microcontroller Software Interface Standard〕用于存放Cortex-M 处理器系列的与供应商无关的软件抽象层和启动相关的代码文件;USER用于存放我们自己编写的代码文件〔含自己移植的底层驱动〕,还有MDK工程;LIB存放所有的官方底层驱动库文件;OBJ用于工程输出的过程文件和最终的二进制文件。

      图12、将官方库解压1〕把STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下的所有文件和STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下的所有文件都到第一步所创立的CMSIS文件夹中;2〕把STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver目录下的文件〔目录inc和scr〕复制到第一步创立的LIB文件夹中;3)把STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template目录下的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h三个文件复制到USER文件夹中3、翻开MDK软件,新建一个工程Proj_GPIO保存到Proj_GPIO/USER中CPU选择STM32F103ZE,如图2;图24、新建一个空文档main.c保存到USER中,然后根据绝对路径将文件对应添加到工程中,如右图。

      5、配置工程属性,右键点击工程文件中的Target 1选择Options for Target ‘Target 1’翻开工程选项对话框做如下修改:1〕Output选项勾选Create HEX File,然后点击Select Folder for Objects按钮定位输出文件保存目录到工程的OBJ文件;2〕Listing选项,同样点击Select Folder for Listings定位输出文件保存目录到工程的OBJ文件;3〕C/C++选项,Define中填入STM32F10X_HD, USE_STDPERIPH_DRIVER系统的两个根本宏定义;配置Include Paths属性,参加工程中包含头文件的目录;如右图4〕后面Debug和Utilities两个选项如果使用J-link或者其他调试器那么需要做对应的修改,否那么不用6、根据实验任务硬件原理图编写代码实现四个按键控制led灯亮灭1〕其中用户按键和LED原理图如下:图52〕根据原理图初始化各IO引脚,编写控制函数,然后主函数中调用/********************************************************************** 函数名称:io_init* 函数功能:初始化PA0 PE2 PE3 PE4为输入口PE5 PB5为输出口* 参数: 无*********************************************************************/void io_init(){ GPIO_InitTypeDef gpin_init_struct; //使能每个IO口的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); gpin_init_struct.GPIO_Pin = GPIO_Pin_0; //PA0引脚 gpin_init_struct.GPIO_Speed = GPIO_Speed_2MHz; //IO速度为2MHz gpin_init_struct.GPIO_Mode = GPIO_Mode_IPD; //下拉模式 GPIO_Init(GPIOA, &gpin_init_struct); //A口按键 gpin_init_struct.GPIO_Pin = GPIO_Pin_5; gpin_init_struct.GPIO_Speed = GPIO_Speed_2MHz; gpin_init_struct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &gpin_init_struct); //B口led1 GPIO_Init(GPIOE, &gpin_init_struct); //E口led2 gpin_init_struct.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4; gpin_init_struct.GPIO_Speed = GPIO_Speed_2MHz; gpin_init_struct.GPIO_Mode = GPIO_Mode_IPU; //上拉模式 GPIO_Init(GPIOE, &gpin_init_struct); //E口按键}、/****************************************************** 函数名称: key_led* 函数功能: 根据按键情况控制led灯的亮灭 s1 s2控制led1;s3 s4控制led2 * 参数: 无* 其他:其中LED1_ON LED1_OFF LED2_ON LED2_OFF为全局宏定义********************************************************/void key_led(){ if(GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_4)==0) LED1_ON; if(GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_3)==0) LED1_OFF; if(GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_2)==0) LED2_ON; if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)==1) LED2_OFF;}*include "stm32f10x.h"*define LED2_ON GPIO_ResetBits(GPIOB, GPIO_Pin_5)*define LED2_OFF GPIO_SetBits(GPIOB, GPIO_Pin_5)*define LED1_ON GPIO_ResetBits(GPIOE, GPIO_Pin_5)*define LED1_OFF GPIO_SetBits(GPIOE, GPIO_Pin_5)void io_init();void key_led();int main(){ io_init(); while(1) { key_led(); }}3〕代码编写完成后编译,通过下载软件将hex文件下载到实验板中运行验证。

      实验二、ucos操作系统的移植一、实验目的1、掌握ucos到STM32的移植方法;2、熟悉通过C语音处理底层存放器的技巧;3、了解STM32在ucos任务切换时的处理;4、规编程格式二、实验容本次实验通过用C语言编写6个操作系统相关函数和用汇编语言编写4个与处理器相关的函数,将实时操作系统µC/OS-Ⅱ移植到芯片STM32F103ZE中,并创立两个用户任务点亮led学会操作系统的移植方法,深入掌握嵌入式操作系统µC/OS-Ⅱ在初始化任务和任务调度的实现方法,直观了解实时操作系统的体系构造和设计思想三、预备知识根本单片机硬件知识、单片机软件编程语言、程序创立和调试的根本方法、ucos操作系统的任务调度原理、STM32的存放器架构四、实验设备及工具硬件:STM32开发平台软件:STM32官方库;PC机操作系统Windows 98、Windows 2000或Windows XP;KEIL MDK集成开发环境;串口转usb驱动五、实验步骤1、按实验一的步骤新建一个工程Proj2_ucos2、将移植好的ucos源代码整个拷贝到我们的新建的工程目录中,然后按对应的文件路径添加到keil工程里〔os_dbg.c和os_dbg_r.c只添加一个〕,如图6和图7。

      图6 图73、配置工程相关属性〔与实验一库应用配置一样〕,记得将ucos的头文件路径添加到工程的include path上面去,找到stm2f10x_it.c的PendSV_Handler函数注释掉,main文件中将includes.h包含进来,主函数为空,编译通过4、在main.c中建立sys_init()函数编写操作系统运行需要的硬件相关初始化〔见代码〕,然后修改stm32f10x_it.c中的系统心跳中断函数并参加头文件includes.h〔见代码,〕/********************************************************************** 函数名称:sys_init* 函数功能:嵌套向量中断优先级分组,时钟心跳定时初始化1/200 s* 参数: 无*********************************************************************/void sys_init(){ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); SysTick_Config(SystemCoreClock/200);}/** * @brief This function handles SysTick Handler. * @param None * @retval None */。

      点击阅读更多内容
      相关文档
      2025国开山东开大《土质学与土力学》形成性考核123答案+终结性考核答案.docx 中学综合素质知识点梳理【中学教师资格证】.docx 2025国开山东开大《特许经营概论》形成性考核123答案+终结性考核答案.doc 2025年高考英语全国一卷真题(含答案).docx 2025国开山东《农民专业合作社创建与管理》形成性考核123答案+终结性考核答案.docx 2025国开山东开大《自然现象探秘》形成性考核123答案+终结性考核答案.docx 2025国开山东《消费心理学》形成性考核123答案+终结性考核答案.doc 2025国开山东《小微企业管理》形成性考核123答案+终结性考核答案.doc 2025国开山东开大《资本经营》形成性考核123答案+终结性考试答案.docx 2025国开山东《小学生心理健康教育》形考123答案+终结性考试答案.docx 2025国开《视频策划与制作》形考任务1-4答案.docx 2025国开《亲子关系与亲子沟通》形考任务234答案+期末大作业答案.docx 2025国开电大《煤矿地质》形成性考核123答案.docx 2025国开电大《冶金原理》形考任务1234答案.docx 2025国开《在线学习项目运营与管理》形考任务1234答案.doc 2025国开电大《在线教育的理论与实践》阶段测验1-4答案.docx 2024 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 环保工程师---2023 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 2025国开《液压与气压传动》形考任务一参考答案.docx 2025年春江苏开放大学教育研究方法060616计分:形成性作业2、3答案.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.