新一代嵌入式微处理器STM32F103开发与应用
3.2 开发流程
( 1)用J- L ink仿真器将PC 机和STM32F103开发板连接起来。
( 2)使用K eil V ision4 IDE开发平台创建新工程, 编写源程序。
打开Ke il V ision4 软件, 创建新的工程文件, 为该工程选择器件: STM icroe lectron ics 公司的STM32F103R8芯片, 单击确定后会弹出对话框, 提示是否选择将启动代码添加到目标工程。启动代码用来完成系统的初始化工作, 对于嵌入式系统来说是必不可少的。选择??是 将启动代码加入到目标工程, 这样可以大大节省启动代码的编写工作。工程创建完毕后, 即可在该工程下新建C 文件, 编写源程序, 完成后将其添加到工程中。最后将库文件STM32F10xRLIB 和STM32F10xDLIB 也添加到工程中。至此, 程序创建工作结束。所需源文件及功能如表2示。
表2 完整工程所需文件
( 3)程序的编译、下载、仿真和调试等。
程序编写完成后即可编译文件, 编译无错误后选择Options选项, 在D ebug程序编译链接成功之后, 选择Pro ject /Opt ions for Targe,t 打开对话框后, 选择Debug选项卡, 在U se下拉按钮中选择Cortex- M3 J- L ink, 选择好后点击settings, 在弹出的对话框中点击Add按钮, 选择STM32F10xM ed- density Flash。点击OK 完成配置。通过Load即可将程序下载到目标器件中。如图1所示。
如果需要对程序进行在线调试, 选择S tart /Stop Debug Session, 这时可以插入断点、设置指针、单步执行、复位等, 还可以观察各个寄存器值的变化, 进行波形仿真。总之可以很方便的在线调试程序。
4 应用程序开发实例
下面以温度测量为例, 具体介绍STM32F103处理器的开发使用方法。该处理器带有12位逐次逼近式ADC, 其输入量程为VREF- ~ VREF+ , 在LQFP64引脚或更少的引脚封装形式中, 它们在芯片内部与ADC 的地VSSA和电源VDDA相连。由于STM32处理器在本设计中采用33V 电压供电, 因此其输入量程为0~ 33V。
处理器内部自带一个温度传感器, 它感知到MPU 周围的温度变化, 将其转化为电压的变化。该传感器的温度适应范围很宽, 可以测量- 40℃~ + 125℃之间变化的温度值, 转换精度为±1.5 ℃ , 能够较好的满足温度测量的任务。
4.1 AD转换和数据传输
通常情况下, 内部温度传感器是关闭的, 为了使其正常工作, 首先需要选择ADC _IN16通道, 因为该通道是内部通道, 与温度传感器直接相连, 其次要设置相关功能寄存器ADC _CR2的TSVREFE位, 开启温度传感器和VREFINT通道。
编写main c文件时, 首先配置系统时钟, 然后进行引脚配置, 主要是为串口数据发送和接收配置引脚,本设计采用通用I /O 口PB10作为串口发送引脚, 配置为推挽式输出, 速度为50MH z; 将通用I /O 口PB11作为串口接收引脚, 浮空输入模式。然后配置串口工作方式及中断, 设置波特率为9600Baud、8位数据位、无校验位、1位停止位、无硬件流控制。然后使能串口的中断、发送、接收。将AD 转换通道设为通道16, 使能温度传感器。检测到ADC 校准寄存器复位完成后, 启动ADC 校准, 校准完成后软件触发启动ADC 转换。
设置w h ile无限循环, 等待串口中断, 在中断程序stm32 f10x_ it c文件中, 将转换结果数据通过串口发送到PC机。流程图如图2所示。
图1 Dubug 选项的配置
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论