STM32与LabVIEW串行通信的设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0 引言
以其高性能、 易上手和低价位的特点迅速得到推
STM32 系列芯片是 ST(意法半导体 )公司近年 广。 而 LabVIEW 是 NI(美国国家仪器)公司的一款
来 推 出 的 一 款 基 于 Cortex-M3 核 心 的 ARM 芯 片 , 编程 软 件 ,又 称 虚 拟 仪 器 ,以 其 图 形 语 言 编 程 而 著 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
第 32 卷第 05 期 2011 年 05 月
煤矿机械 Coal Mine Machinery
Vol.32No.05 May. 2011
STM32 与 LabVIEW 串行通信的设计
张立勋, 李雪伟, 唐小景 (平顶山煤矿机械有限责任公司, 河南 平顶山 467000)
摘 要: 介绍了芯片 STM32F103 基于通用同步/异步收发器和 LabVIEW 基于虚拟仪器软件 架构的串口配置过程,对设计中的关键程序进行了重点分析,并通过硬件平台验证了方法的可行 性。 最终实现了基于 RS232 协议的 ARM 芯片 STM32 与 LabVIEW 的串行通讯。
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
图 1 加入工程的库函数
{
重点讲述 STM32 串口配置的方法。 首先 STM32 USART_SendData(USART1 ,USART_Receive
要初始化时钟和外设,然后才能在主函数编程实现 Data(USART1));//按照原数据发送出去
具体功能。 实验中的关键函数:
while (USART_GetFlagStatus (USART1, US-
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
在用户文件中加入该程序可直接编译运行。 实现的
RCC_APB2PeriphClockCmd (RCC_APB2Periph_US- 功 能 是 : 收 到 一 个 字 符 后 立 即 把 该 字 符 再 发 送 出
ART1|RCC_APB2Periph_GPIOA,ENABLE);
去。 子程序中给的函数和变量名已经能很好的代表
A/D 采集
图 3 控制输出电路
2 系统软件设计
否 烟雾浓度是否超限
在系统的软件设计中,首先完成系统的初始化 工作:A/D 转换、I/O 口等,其中利用 PIC 的片内资源
是 继电器闭合
复位
TMRO 和预分频器来启动 ADC 转换, 使用 AN0 通
图 4 应用程序流程图
道实现对烟雾传感器输出的模拟量进行转换,转换 参考文献:
研究生 ,研 究 方 向 为 通 信 与 信 息 系 统 ,ARM 嵌 入 式 系 统 ,电 子 信 箱 : liangbing861212@.
单片机具有较强的抗干扰能力,保证了该装置可以 215
责任编辑:于淑清 收稿日期:2011-01-09
Vol.32No.05
STM32 与 LabVIEW 串行通信的设计— ——张立勋,等
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
其 含 义 , 如 USART_BaudRate 表 示 波 特 率 ;Stop-
GPIO_InitStructure.GPIO_Mode
=
Bits_1 表示一个停止位。 下面仅重点分析主函数中
GPIO_Mode_AF_PP;//A9 口推挽输出
GPIO_InitStructure.GPIO_Mode
= GPI- 寄 存 器 的 第 7 位 , 是 读 数 据 寄 存 器 非 空 标 志 位 ,
O_Mode_IN_FLOATING;//A10 口浮空输入
RXNE=1 表示接收到数据。读数据寄存器清零该位,
GPIO_Init(GPIOA, &GPIO_InitStructure);
否 RXEN=1? 是
读出接收的数据并发送出去
继续等待 否
TC=1?
字 节 ), 立 即 在 “ 读 取 字 符 串 ” 窗 口 中 接 收 到 相 同 的 字符。 可见,在波特率设置为 115 200 bps,8-N-1 模 式下,收发完全正常。 后来又测试了几组更低波特 率(如 9 600 bps),依然正 常通信。 由 此可以说明 , STM32F103 与 LabVIEW 的串行交互通信成功。
因此无需软件复位。 216
第 32 卷第 05 期
STM32 与 LabVIEW 串行通信的设计— ——张立勋,等
Vol.32No.05
初始化系统
首先把串口参数(波特率、数据位等)设置和
初始化 GPIO 初始化 USART1
STM32F103 中 的 完 全 一 致 ,并 选 择 相 应 的 串 口 (本 例 是 COM8)。 然 后 点 击 LabVIEW 的 运 行 按 钮 ,在 “写 入 字 符 串 ”窗 口 中 写 入 任 意 字 符 (需 小 于 10 个
关键词: 同步异步收发器; 虚拟仪器软件架构; 串行通信 中图分类号: TP31 文献标志码: B 文章编号: 1003 - 0794(2011)05 - 0215- 03
Design of Serial Communication Between STM32 and LabVIEW
ZHANG Li-xun, LI Xue-wei, TANG Xiao-jing (Pingdingshan Coal Mine Machinery Corporation Limited, Pingdingshan 467000, China)
第 32 卷第 05 期
名。 本文重点介绍了 STM32F103 与 LabVIEW 串行 }
通 信 的 配 置 方 法 , 并 搭 建 了 硬 件 平 台 进 行 实 验 验 void USART1_Config(void)//配置 USART1
证。 利用 ST 公司提供的固件库配置了下位机的串 {
=
ART3), 完全支持 RS232 协议, 且有更高的传输速 USART_StopBits_1;
率。接口电平匹配芯片选择高速且兼容 3.3V 单片机 USART_ART_Parity
=
的 MAX3232 (其外围电路与 MAX232 同)。 下面将 USART_Parity_No;
USART1 收发数据过程。 如图 2 所示,(1)TC 是状态
GPIO_Init(GPIOA, &GPIO_InitStructure);
寄存器(USART_SR)的第 6 位,是发送完成标志位,
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
TC=1 表示发送完成,需软件复位;(2)RXNE 是状态
20110109coalminemachineryvol32no05may2011引言stm32系列芯片是st意法半导体公司近年来推出的一款基于cortexm3核心的arm芯片以其高性能易上手和低价位的特点迅速得到推ni美国国家仪器公司的一款编程软件又称虚拟仪器以其图形语言编程而著stm32labview串行通信的设计张立勋平顶山煤矿机械有限责任公司河南平顶山467000介绍了芯片stm32f103基于通用同步异步收发器和labview基于虚拟仪器软件架构的串口配置过程对设计中的关键程序进行了重点分析并通过硬件平台验证了方法的可行最终实现了基于rs232协议的arm芯片stm32与labview的串行通讯
道烟雾浓度监测装置的设计 。 通过以 PIC16F873A 单片机作为处理器完成对带式输送机工作环境的 烟雾浓度监测, 防止火灾事故发生。 并且由于 PIC
[4]王卫军. 离子型烟雾传感器的研制[J]. 矿 业 安 全 与 环 保,2004(6): 15-17.
[5]周俊峰. 怎样选用继电器[M]. 北京: 国防工业出版社, 1985. 作者简介: 梁兵(1987- ),江苏盐城人,现为中国矿业大学硕士
#include “stm32f10x.h”//寄存器和变量定义
ART_FLAG_TC)==RESET);//发送完,复位
void GPIO_Configuration(void)//配置 GPIO
}}}
{
以上程序虽简单,但很完整。 配置好库函数后,
GPIO_InitTypeDef GPIO_InitStructure;
[2]罗翼, 张宏伟. PIC 单片机应用系统开发典型实例[M]. 北京: 中国电力 出版社, 2005.
[3]汪巍. 基于单片机的矿用胶带输送机安全电控系统设计[J]. 矿业研 究与开发,2005(1):66-67.
3 结语 本 文 完 成 了 一 种 基 于 PIC 单 片 机 的 输 送 带 巷
=
单配置即可使用。 首先把固件库中 Libraries\CMSIS\ USART_Mode_Rx | USART_Mode_Tx;
Core\CM3 里面的 6 个文件加入到工程中去,里面有 USART_Init(USART1, &USART_InitStructure);
启动文 件 、寄 存 器 和 变 量 定 义 文 件 ,是 使 用 库 编 程 USART_Cmd(USART1, ENABLE); //使能串口
必不可少的文件; 然后在工程中加入实验中用的 }
stБайду номын сангаас32f10x_rcc.c/stm32f10x_gpio.c 和 stm32f10x_usart. int main(void)//主函数
c3 个文件分别用来配置时钟、端口和串口。 完成后 {
的文件列表如图 1 中虚线框内所示。
int RX_status = 0;
SystemInit();//系统初始化 GPIO_Configuration();//配置 GPIO USART1_Config(); //配置 USART1 while (1) { RX_status = USART_GetFlagStatus (USART1, USART_FLAG_RXNE);//接收完成标志位状态 if(RX_status == SET) //数据接收完成,执行
对 库 函 数 的 使 用 方 法 、I/O 端 口 和 串 行 口 的 配 置 分 USART_ART_HardwareFlowContol =
别进行说明。
USART_HardwareFlowControl_None;
ST 公司给出了整个芯片外设的固件库,只需简 USART_ART_Mode
USART_ART_WordLength
=
实验中使用的芯片 STM32F103VET6,内置 3 个 USART_WordLength_8b;
通 用 同 步 /异 步 收 发 器 (USART1、USART2 和 US- USART_ART_StopBits
口和 NI 公 司 提 供 的 VISA 函 数 配 置 了 上 位 机 的 串 USART_InitTypeDef USART_InitStructure;
口。 该方法简单可靠,具有很好的通用性。
USART_ART_BaudRate = 115200;
1 芯片 STM32F103 的串口配置
结果采用了左对齐方式。 当转换结束后,进入中断, 在中断服务程序中,读取转换好的数据。 然后与预先 设置的标准限定值进行比较, 当烟雾浓度超过限定 值时,则给单片机的 RB1 口赋值为低电平,即继电器 闭合,停止带式输送机运转。 其流程如图 4 所示。
[1]陈悦,刁若菲. 烟雾检测火灾报警系统的 设 计 [J]. 微 计 算 机 信 息, 2007(8):93-94.
流不能立刻消失,而损坏电路。
在大功率设备较强的电磁干扰环境下正常工作。
+5 V VCC Q2
R5 4.7k RB1
R6 2.2k
R7 200
1 U1 2
TLP
+24 V D2
3 4
D1
R8 R9 120 10k
OUT_1
1 k1 2 3 6
1k R11
+24 V
5 4
C7 IU
开始
初始化
定时器是否溢出 否 是