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,