STM32f103的数电采集电路的USART的使用与蓝牙的连接的程序

2017-09-12 15:31:16来源: eefocus 关键字:STM32f103  数电采集  USART  蓝牙

STM32 的串口资源相当丰富的,功能也相当强劲。本项目所使用的 STM32F103C8T6 最多可提供 3 路串口,有分数波特率发生器、支持同步单线通信和半双工单线通讯、支持 LIN、 支持调制解调器操作、 智能卡协议和 IrDA SIR ENDEC 规范、具有 DMA等。

串口设置的一般步骤可以总结为如下几个步骤:

1.串口时钟使能,GPIO 时钟使能

2.串口复位

3.GPIO 端口模式设置

4.串口参数初始化

5.开启中断并且初始化 NVIC(如果需要开启中断才需要这个步骤)

6.使能串口

7.编写中断处理函数

HC-05 嵌入式蓝牙串口通讯模块(以下简称模块)具有两种工作模式:命令响应工作模式和自动连接工作模式,在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;当模块处于命令响应工作模式时能执行下述所有AT 命令,用户可向模块发送各种AT 指令,为模块设定控制参数或发布控制命令。通过控制模块外部引脚输入电平,可以实现模块工作状态的动态转换。

前端采集模块使用了STM32F103C8T6的USART1串口通路,采用115200的波特率,数据位8位,1位停止位,无校验位,作为串口配置协议。HC-05蓝牙模块使用从机(Slave)模式,并用AT指令设置串口配置协议。蓝牙作为无线传输方式,是和安卓智能手机通信的一种简单快捷的通信方式,USART串口作为单片机与蓝牙芯片之间通信的方式。

蓝牙通信协议报文格式详情见3.2.6第4条。这样的通信协议充分利用了单片机内核的移位运算器,比如数据的第0位SendBuff[0] = HexTable[( adcValue >> 12 ) & 0x0f ];同时稳定性极高,即使在数据传输途中某一位的数据出错或者丢失,只要上位机识别报文标识字符,之后的数据还是可以准确的读取,保证了数据传输的高效。而且保证了数据的可靠性,经过测试,系统连续运行3小时,可以实现0出错,错误的数据自动抛弃。


USART1使用DMA发送配置和接收中断代码


  1. void uart_init(u32 bound){  

  2.   //GPIO端口设置  

  3.   GPIO_InitTypeDef GPIO_InitStructure;  

  4.     USART_InitTypeDef USART_InitStructure;  

  5.     NVIC_InitTypeDef NVIC_InitStructure;  

  6.        

  7.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA时钟  

  8.     USART_DeInit(USART1);  //复位串口1  

  9.     //USART1_TX   PA.9  

  10.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9  

  11.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  

  12.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出  

  13.     GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化PA9  

  14.    

  15.     //USART1_RX   PA.10  

  16.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;  

  17.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入  

  18.     GPIO_Init(GPIOA, &GPIO_InitStructure);  //初始化PA10  

  19.   

  20.  //Usart1 NVIC 配置  

  21.   

  22.     NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;  

  23.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3  

  24.     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;      //子优先级3  

  25.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;         //IRQ通道使能  

  26.     NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器  

  27.     

  28.    //USART 初始化设置  

  29.   

  30.     USART_InitStructure.USART_BaudRate = bound;//一般设置为9600;  

  31.     USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式  

  32.     USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位  

  33.     USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位  

  34.     USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制  

  35.     USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式  

  36.   

  37.     USART_Init(USART1, &USART_InitStructure); //初始化串口  

  38.     USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//接收寄存器满开启中断  

  39.     USART_Cmd(USART1, ENABLE);                    //使能串口   

  40.     USART_DMACmd(USART1,USART_DMAReq_Tx,ENABLE);  

  41. }  

  42.   

  43. void USART1_IRQHandler(void)                    //串口1中断服务程序  

  44.     {  

  45.     uint8_t Res = 0;  

  46.     if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //接收中断(接收寄存器满中断)  

  47.     {  

  48.         Res =USART_ReceiveData(USART1);//(USART1->DR);   //读取接收到的数据   

  49.     }  

  50.     if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET) //接收中断(发送寄存器空中断)  

  51.     {  

  52.     }  

  53. }   


这里使用USART的DMA发送,同时使用接收中断。其中Res是接收到的数据。DMA配置详情请参考http://blog.csdn.net/devintt/article/details/46998173


关键字:STM32f103  数电采集  USART  蓝牙

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/article_2017091234389.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32f103的数电采集电路的TIMER定时器的使用与时序控制的程序
下一篇:STM32f103的数电采集电路的DMA设计和使用优化程序

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
STM32f103
数电采集
USART
蓝牙

小广播

独家专题更多

东芝在线展会——芯科技智社会创未来
东芝在线展会——芯科技智社会创未来
2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved