【嵌入式】STM32的库函数使用
来源:互联网 发布:在线画板软件 编辑:程序博客网 时间:2024/05/22 15:13
零、前准备
1.MDK5编译环境一、建立工程模板,写一个简单的小程序
2.JTAG驱动或串口驱动
1).创建工程目录
这里就会使用MDK创建工程了,由于STM32的工程已经比较大了,所以在工程目录下将会再创建多个目录,以便整理。
(说明一下,其实随便放都可以,只要工程都能包含以下说到的文件即可)
这里工程名就叫template吧(.\代表工程目录):
.\CORE 存放芯片内核驱动文件;新建好后就可以先把将会用到的文件放进去了,这里使用的是库函数3.5版本,
.\FWLIB 使用库函数的话存放库函数;
.\OBJ 存放编译生成文件;
.\SYSTEM 存放系统代码;
.\USER 存放工程文件,应用程序等。
1.STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下有两个文件core_cm3.c和core_cm3.h放进CORE文件夹中,是CM3的内核支持文件,其他使用 CM3 内核的芯片也可以用,不一定是 stm32。这两个文件用来获取设置 CM3 内核,配置一些内核寄存器;
2.STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下有用汇编语言写的内核启动代码,根据容量选不同的代码,C8T6属于MD级别的,所以复制starup_stm32f10x_md.s到CORE文件夹中;3.STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver下就是各外设的库函数文件及其接口,直接把inc和src两个文件夹复制在FWLIB中;
4.STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下有几个源码文件stm32f10x.h, system_stm32f10x.c, system_stm32f10x.h 和startup_stm32f10x_hd.s 在 DeviceSupport 目录下,说明这几个文件是和具体的芯片有关的,也就是 stm32 芯片的支撑文件。其中 stm32f10x.h 是标准外设库的入口,使用标准外设库的代码中必须包含该头文件。system_stm32f10x.c, system_stm32f10x.h 这两个文件提供函数用来初始化 stm32 芯片,配置 PLL、系统时钟和内置 flash 接口。这几个文件放在.\USER里。
5.STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下有三个文件stm32f10x_it.cstm32f10x_it.h,stm32f10x_conf.h复制到.\USER文件夹中
2).创建MDK工程
1.打开MDK后选择project-->New uVision Project-->工程文件保存在USER里-->选择对应的芯片
2.在左边Project栏右键有个Manage Project Items,打开后将刚刚复制的文件都添加进去,注意不要忘了那个汇编语言写的.s文件
3.添加好后,再设置一下工程属性,Project-->Options for Target 'uCOS-II'
Output栏的Create HEX File要选上;
C/C++栏有个Include Paths里要把所有有inc文件的目录都添加上;
Debug栏这里改用J-LINK/J-TRACE Cortex。
4.修改一下文件内容
在 stm32f10x.h 的 66-73 行,根据所选芯片类型,去掉相应注释,这里我去掉STM32F10X_MD 行的注释(中容量型 stm32 芯片);
在 stm32f10x.h 的 去掉 105 行的 USE_STDPERIPH_DRIVER 注释,启用 stm32 标准外设库;
在 stm32f10x_conf.h 的 28-49 行可以把无需用到的库函数注释掉加快编译时间,同时把之前添加在工程里的库函数.c和.h文件去掉(这一步可在最后才做)。
5.就写一个LED灯闪亮的小程序
main.cdelay.c
6.编译过了点击J-LINK下载即可,串口下载方法如下:
1).先在工程生成.hex文件,步骤入下图
打开项目设置
在output栏把生成hex文件勾上
再编译一次就可以找到hex文件在输出文件夹
2).用串口把开发板和电脑接好,这一点就不说了,记住txd-->rxd,rxd-->txd。
3).先了解一下stm32的自举模式,看stm32用户手册
正常的话我们是从主闪存器启动,现在我们需要从系统存储器启动,那这个怎么办到呢?我们需要手动拔跳线帽,在开发板上找找,肯定有的。
然后打开串口助手,导入hex文件,下载后重启就可以了。
- 【嵌入式】STM32的库函数使用
- 解析STM32的库函数
- STM32的库函数
- STM32库函数SystemInit()的理解
- STM32之使用库函数驱动LED灯
- STM32之使用库函数驱动LED灯
- STM32:STM32库函数配置
- STM32库函数中GPIO_Init的理解
- STM32的SPI初始化 库函数3.5
- 关于stm32库函数应用的总结
- 献给新手:解析STM32的库函数
- STM32库函数编程学习心得:assert_param的应用
- STM32库函数中GPIO_Init的理解
- 操作stm32库函数的感悟(tucao)
- STM32库函数EXTI_GetFlagStatus和EXTI_GetITStatus的区别
- STM32之ADC库函数的介绍
- Stm32库函数里的断言机制解析
- STM32库函数USART_SendData的缺陷和解决方法
- 选择排序法
- IIC通信协议
- FFMPEG解码流程理解搜集整理及tutorial5的理解,主要是音视频同步
- Android API Level、sdk版本与发行日期 对照表
- java中父类和子类初始化顺序
- 【嵌入式】STM32的库函数使用
- 欢迎使用CSDN-markdown编辑器
- 徒手hypervisor(三)
- UML类图的几种关系和序列图总结
- 工作线程不要对界面操作
- JAVA使用FTPClient类获取linux上的文件最后修改日期少了8小时
- 采用邻接矩阵实现有向网的存储,建立有向网,并实现单源最短路径
- C#在XP系统下调用C++ dll时报找不到指定模块
- DataGridView左键选中行改变行背景色,右键选中行不改变背景色。左键选中行的背景色不变