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