logo资料库

STM32与LabVIEW串行通信的设计.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
DOI:10.13436/j.mkjx.2011.05.166 第 32 2011 卷第 年 05 05 期 月 煤 矿 机 械 Coal Mine Machinery Vol.32No.05 May. 2011 与 STM32 LabVIEW 串行通信的设计 张立勋 李雪伟 , 平顶山煤矿机械有限责任公司 , 基于通用同步 , 唐小景 河南 平顶山 异步收发器和 ( 467000) 摘 要 介绍了芯片 : STM32F103 对设计中的关键程序进行了重点分析 , 协议的 芯片 与 RS232 ARM STM32 LabVIEW 的串行通讯 。 / 基于虚拟仪器软件 并通过硬件平台验证了方法的可行 LabVIEW 同步异步收发器 虚拟仪器软件架构 串行通信 ; 文献标志码 ; 文章编号 : TP31 : 1003 - 0794(2011)05 - 0215- 03 Design of Serial Communication Between STM32 and LabVIEW : B , 。 架构的串口配置过程 最终实现了基于 性 关键词 中图分类号 : ZHANG Li-xun, LI Xue-wei, TANG Xiao-jing (Pingdingshan Coal Mine Machinery Corporation Limited, Pingdingshan 467000, China) Abstract: Introduction of serial configuration of STM32F103VET6 based on USART and LabVIEW based on VISA. The key point of design procedure was analyzed, and the feasibility of method was verified by hardware platform. Finally achieved serial communication between STM32 and LabVIEW based on RS232 protocol. Key words: USART; VISA; serial communication 引言 STM32 来 推 出 的 一 款 基 于 系列芯片是 意法半导体 公司近年 ST( ) Cortex-M3 核 心 的 ARM 芯 片 , 0 以其高性能 广 编程软件 而 易上手和低 价位的特点 迅 速 得 到 推 公司的一款 以其图形语 言编程而 著 美国国家仪器 NI( 是 又 称虚拟仪器 LabVIEW 。 ) 、 , , !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 流不能立刻消失 在大功率设备较强的电磁干扰环境下正常工作 而损坏电路 , 。 。 +5 V VCC R5 4.7k R6 2.2k RB1 Q2 R7 200 1 2 U1 TLP +24 V 3 4 D1 D2 +24 V R8 120 R9 10k OUT_1 1 2 3 6 k1 5 4 1k R11 C7 IU 控制输出电路 图 3 2 系统软件设计 在系统的软件设计中 PIC 、I/O ADC :A/D 口等 转换 工作 转换 , 其中利用 , 和预分频器来启动 TMRO 道实现对烟雾传感器输出的模拟量进行转换 结果采用了左对齐方式 在中断服务程序中 设置的标准限定值进行比较 值时 闭合 首先完成系统的初始化 的片内资源 通 使用 转换 进入中断 , , 然后与预先 当烟雾浓度超过限定 即继电器 所示 则给单片机的 停止带式输送机运转 口赋值为低电平 其流程如图 读取转换好的数据 当转换结束后 AN0 RB1 , , 。 , 。 , , , 4 。 , 结语 本 文 完 成 了 一 种 基 于 。 3 PIC 单 片 机 的 输 送 带 巷 通过以 道烟雾浓度监测装置的设计 PIC16F873A 单片 机作为处理 器完成对带 式输送机工 作环 境 的 烟雾浓度监测 单片机具有较强的抗干扰能力 PIC 保证了该装置可以 防止火灾事故发生 并且由于 。 , 。 , 开始 初始化 定时器是否溢出 否 是 采集 A/D 否 烟雾浓度是否超限 是 继电器闭合 复位 图 4 应用程序流程图 烟雾检测火灾报警系统的设计 微计算机信息 , [J]. 参考文献 : 陈悦 , [1] 刁若菲 . 2007(8):93-94. 罗翼 , 张宏伟 . PIC 单片机应用系统开发典型实例 北京 : [M]. 中国电力 , 2005. 基于单片机的矿用胶带输送机安全电控系统设计 矿业研 [J]. ,2005(1):66-67. 离子型烟雾传感器的研制 矿业安全与环保 [J]. ,2004(6): [2] [3] 出版社 汪巍 . 究与开发 王卫军 [4] 15-17. 周俊峰 [5] . . 怎样选用继电器 北京 国防工业出版社 [M]. : , 1985. 作者简介 梁兵 : (1987- ), 研究方向为通信与信息系统 江苏盐城人 现为中国矿业大学硕士 , 嵌入式系统 ,ARM 电子信箱 , : 研究生 , liangbing861212@sina.com. 责任编辑 于淑清 收稿日期 : :2011-01-09 215
与 STM32 LabVIEW 串行通信的设计 张立勋 等 , ——— 第 32 卷第 05 期 } void USART1_Config(void)// { 配置 USART1 USART_InitTypeDef USART_InitStructure; 。 USART_InitStructure.USART_BaudRate = 115200; USART_InitStructure.USART_WordLength USART_WordLength_8b; USART_InitStructure.USART_StopBits USART_StopBits_1; USART_InitStructure.USART_Parity USART_Parity_No; = = = USART_InitStructure.USART_HardwareFlowContol = 只需简 , USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = 本文重点介绍了 。 Vol.32No.05 名 通信的配 置方法 证 。 口和 口 利用 ST 公司提供的 NI 该方法简单可靠 芯片 实验中使用的芯片 异 步 收 发 器 STM32F103 。 1 通 用 同 步 / 完全支持 。 ART3), 率 的 对库函数 的使用方法 别进行说明 MAX3232 ( 。 与 STM32F103 串行 并搭 建了硬件平 台进行 实 验 验 公司提供的固件库配置了下位机的串 函 数配置了上 位机的串 LabVIEW , VISA 具有很好的通用性 , 的串口配置 STM32F103VET6, 个 3 内置 和 , (USART1、USART2 协议 US- 且有更高的传输速 单片机 下面将 端口和串行 口 的 配 置 分 3.3V 同 MAX232 )。 其外围电路与 、I/O 接口电平匹配芯片选择高速且兼容 RS232 公司给出了整个芯片外设的固件库 ST 单配置即可使用 。 里面的 寄存器和变 量定义文 件 首先把固件库中 个文件加入到工程中去 Libraries\CMSIS\ 里面有 是使用库 编程 然后在 工程中加入 实验 中 用 的 Core\CM3 启动文件 必不可少的 文件 6 , 、 , stm32f10x_rcc.c/stm32f10x_gpio.c 个文件分别用来配置时钟 端口和串口 stm32f10x_usart. 完成后 、 。 c3 的文件列表如图 中虚线框内所示 。 和 ; 1 usart1 start_code startup_stm32f10x_hd.s library core_cm3.c system_stm32f10c.c stm32f10x_gpio.c stm32f10x_rcc.c stm32f10x_usart.c user_code main.c introduce introduce.txt 加入工程的库函数 图 1 重点讲述 STM32 要初始化时钟和外设 具体功能 , 实验中的关键函数 串口配置的方法 STM32 然后才能在主函数编程实现 首先 。 。 #include “stm32f10x.h”// void GPIO_Configuration(void)// { : 寄存器和变量定义 配置 GPIO GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd (RCC_APB2Periph_US- ART1|RCC_APB2Periph_GPIOA,ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = Bits_1 GPIO_Mode_AF_PP;//A9 口推挽输出 GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode O_Mode_IN_FLOATING;//A10 口浮空输入 GPIO_Init(GPIOA, &GPIO_InitStructure); = GPI- 216 USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); 使能串口 USART_Cmd(USART1, ENABLE); // } int main(void)// { 主函数 int RX_status = 0; SystemInit();// 系统初始化 GPIO_Configuration();// GPIO 配置 配置 USART1 USART1_Config(); // while (1) { RX_status = USART_GetFlagStatus (USART1, US- ART_FLAG_RXNE);// if(RX_status == SET) // 接收完成标志位状态 数据接收完成 执行 , { USART_SendData(USART1 ,USART_Receive 按照原数据发送出去 Data(USART1));// while (USART_GetFlagStatus (USART1, US- ART_FLAG_TC)==RESET);// 发送完 复位 , }}} , 。 但很完整 以上程序虽简单 配置好库函数后 , 实现的 收到 一个字符后 立即把该字 符 再 发 送 出 子程序中给的函数和变量名已经能很好的代表 在用户文件中加入该程序可直接编译运行 功能是 去 其 含 义 表 示 波 特 率 如 。 。 : , USART_BaudRate 表示一个停止位 收发数据过程 USART1 寄存器 (USART_SR) 表示发送完成 TC=1 寄 存 器 的 第 位 , 7 。 2 ;Stop- 下面仅重点分析主函数中 所示 如图 是状态 是发送完成标志位 位 , 是状态 。 的第 需软件复位 , 是 读 数 据 寄 存 器 非 空 标 志 位 读数据寄存器清零该位 ;(2)RXNE ,(1)TC 6 , , , 表示接收到数据 。 RXNE=1 因此无需软件复位 。
第 32 卷第 05 期 与 STM32 LabVIEW 初始化系统 初始化 GPIO 初始化 USART1 否 RXEN=1? 是 读出接收的数据并发送出去 继续等待 否 TC=1? 是 TC=0 图 的串口配置 2 USART1 收发流程图 2 LabVIEW 要使用串口通信 , 否则无法使用 动软件 , 函 数 有 配 置 串 口 VISA 首先需要安装 模块 。 写 入 VISA 、VISA NI 的设备驱 程序中需要用的 读 取 和 、VISA 关闭 VISA 串口下能够找到 。 这些模块在程序面板的函数 \ 配置后的程序框图如图 仪器 I/O\ 所示 串行通信的设计 张立勋 ——— , 首 先 把 串 口 参 数 等 Vol.32No.05 STM32F103 例是 ( , ) 、 ( 波 特 率 LabVIEW 数 据 位 等 中的完 全一致 然后点击 窗口中写 入任意字符 读 取字符串 ” 在波特率设置为 并选 择 相 应 的 串 口 的 运行 按 钮 设 置 和 本 在 个 窗 口中接收 到相同的 模 后来又测试了几组更低波特 由此可以说明 115 200 bps,8-N-1 依然正常通信 需小于 10 ( 。 , COM8)。 写入字符串 ” 立即在 可见 收发完全正常 ), “ , “ 字节 字符 式下 , 如 率 。 ( 9 600 bps), 。 , 与 的串行交互通信成功 STM32F103 LabVIEW 实验所用接口芯片 MAX3232, 通信线用的是 其最大通信速率 主控 转串口线 USB 235 000 bps; 最 大 速 率 CH340) 口的最大速率为 率调高到 高 256 000 bps, 误码率 就大大增加 2 Mbps;STM32F103 的 根据这些特点 系统仍能稳定运行 4.5 Mbps。 。 无法完成 正常通信 , , 就是该平台下的最大通信速率 256 kbps 件的最大通信速率可知 , 瓶颈是 , MAX3232。 , USART1 把波特 若再调 可 见 由各个硬 。 。 ( 为 3 。 4 结语 利 用 中 图 :(1) 否则会导致 3 序 , 口和 VISA 配置和关闭 。 配置后的前面板 的模式 个数据位 (8 实验与分析 、1 兖州矿业 集团 ) ( 要定时停产检修 压很有现实意义 。 , 东滩煤矿 规定范围内 用 容量为 高功率因数运行措施 100 MVA), 。 其串口配置仍然采用 : 个停止位 无奇偶校验位 8-N-1 , )。 电子信箱 :1979919818@163.com. 3 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :2010-12-28 : 责任编辑 于淑清 收稿日期 合理调节发电机无功输入提高矿区电网供电质量 有限责任公司的电网为 一个矿一个发电厂一个变电所 的供电格局 基本实现自发自用 “ ” , 矿区电网负荷变化较大 , , 造成电网局部无功分布不合理 给电网运行带来不稳定因素 因此 。 , , 由于煤矿每天 。 稳定矿区电网电 鉴于矿区电厂机组规模较小 不参与电网调频与调峰 根据无功分布情况 合理调节发电机无功输出 将矿区电网电压稳定在 , , , 且尽量提高电网功率因数 停产检修时 使电气设备得到充分利用 , 矿上煤泥煤矸石热电厂三炉三机继续运行 既提高传输能力 , 又降低电网损耗 , 发电机满负荷 , 14:00~18:00 功率因数 , 当时 将无功输出减少 0.84。 , 系统电压达 35 kV 9.24 MVar, 把 3 。 42MW( 机端电压 为实现稳定运行 38.8 kV, 6.7 kV。 台发电机功率因数逐步提高到 使电网电压稳定在 0.92, , 还减少发电与供电综合费 该矿井 母线短路 采取减少无功输出和提 机端电 35 kV , 38.0 kV, 李剑峰 ( ) 压稳定在 6.56 kV, 全都控制在允许范围内 。 217 。 VISA SCRIAL 串口选择 I/O 波特率 U32 数据位 U16 奇偶校验 U16 停止位 U16 流控制 U16 真 VISA abc W 写 TF 真 VISA abc R 读 TF 停止 TF VISA C 程序框图 图 3 需在 while 占用率过高 循 环 里 面 加 个 延 时 程 配置串 避免重复 ;(2)VISA 循环外 while , CPU 关闭函数要放在 ST 利用 官 方 的 固 件 库 配 置 了 官方的设备驱动 的 模块配置 是一种较为简便的串口配置方 , 系列的所有 STM32F103 VISA 的串口 NI 芯片与 具有很好的通用性 ARM ST32 的串行通讯都适合 , Lab- 。 USART1; 了 法 LabVIEW 该方法对 。 VIEW 参考文献 : 陈 锡 辉 张 银 鸿 [1] , . Labview8.2 程 序 设 计 [M]. 北 京 : 清 华 大 学 出 版 社 ,2007. 李 宁 . [2] 基 于 MDK 的 STM32 处 理 器 开 发 应 用 [M]. 北 京 : 北 京 航 空航天大学出版社 ,2008. 等 仲丛和 张春芝 冯海明 , , [3] 基于 . Labview 滚动轴承故障监测系统 , 的研究 [J]. 基于 煤矿机械 ,2010,31(12):204-206. Labview 的串行口通信接口设计与实现 现代电子 [J]. [4] 逯颖 技术 . ,2006(9):123-124. 作者简介 : 张立勋 河南确山人 工学硕士 (1979- ), ,2009 现 任 职 于 平 顶 山 煤 矿 机 械 有 限 责 任 公 司 , 业于河南科 技 大 学 , 年毕 主 要 , 从事机电一体化产品控制系统的研发与设计 电话 , :0375-4978756,
分享到:
收藏