stm32串口通信程序之UART2(TTL)

发布者:Joyful444Life最新更新时间:2019-01-09 来源: eefocus关键字:stm32  串口通信  UART2  TTL 手机看文章 扫描二维码
随时随地手机看文章

一、硬件连接





二、串口助手设置:



三、keil下编程


1.要添加的工程文件



二要编写的user文件


1.main.c


#include "printf.h"  

  

int main()  

{       

    printf_init();    

    printf("\luoyiran is a nice boy\n");  

    printf("xixi\n");  

    printf("serial communications is so  mystical and interesting!\n");  

    printf("keep striving!\n");  

      

}  

2.printf.c

#include "printf.h"  

#include "stm32f10x.h"       

#include "stm32f10x_rcc.h"  

#include "stm32f10x_gpio.h"  

#include "stm32f10x_usart.h"       

#include "misc.h"     

int fputc(int ch,FILE *f)  

{    

    while(USART_GetFlagStatus(USART2,USART_FLAG_TC) != SET);   

    USART_SendData(USART2,(unsigned char)ch);      

    while(USART_GetFlagStatus(USART2,USART_FLAG_TC) != SET);    

    return (ch);    

}  

 

/*函数名printf_init()

描述:配置USART2的GPIO口,

工作模式为:比特率115200  数据位:8位 奇偶校验位:N  停止位:1

输入:无

输出:无

****************************/

void printf_init(void)  

{  

    GPIO_InitTypeDef GPIO_InitStructure;    

    USART_InitTypeDef USART_InitStructure;  

      

       /*config USART clock*/  

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);   

    RCC_APB1PeriphClockCmd( RCC_APB1Periph_USART2,ENABLE);  

       /*USART1 GPIO config*/     

    GPIO_InitStructure.GPIO_Pin= GPIO_Pin_2;    

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

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    

    GPIO_Init(GPIOA,&GPIO_InitStructure);   

      

      GPIO_InitStructure.GPIO_Pin= GPIO_Pin_3;    

    GPIO_InitStructure.GPIO_Mode= GPIO_Mode_IN_FLOATING;  //复用开漏输入    

    GPIO_Init(GPIOA,&GPIO_InitStructure);   

       /*USART1 mode Config*/     

    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_HardwareFlowControl = USART_HardwareFlowControl_None;  

    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;  

    USART_Init(USART2,&USART_InitStructure);  

    USART_Cmd(USART2,ENABLE);   

}

printf.h


#ifndef __printf_H  

#define __printf_H  

  

#include "stm32f10x.h"  

#include

void printf_init(void);  

int fputc(int ch,FILE *f);  

  

#endif  


四、编译文件,点击load,打开串口调试助手,接上跳线帽子,观察串口助手打印现象


关键字:stm32  串口通信  UART2  TTL 引用地址:stm32串口通信程序之UART2(TTL)

上一篇:STM固件库中assert_param的作用
下一篇:stm32按键轮循点灯

推荐阅读最新更新时间:2024-03-16 16:22

基于STM32的串口循环队列
先说串口,这个应该都知道吧(不知道的童鞋,先把基本功学好),大部分单片机或者处理器都会带一个或者多个串口,方便进行数据的通信。 那么,串口的循环队列是什么?这里以STM32的串口为例,进行解释说明。 假设串口一次只发一个数据,这倒是简单了,每次只对这一个数据进行判断,然后处理相关指令。但现实不会一直都这么美好,很多时候你收到的可能是一大串数据,你要先小心翼翼的把它们存好,然后再依次判断这里面有哪些指令要处理。 假设你定义了一个30个元素的数组a ,每次串口收到数据都往里面存,存的时候地址加一。这个操作很简单吧,应该是都会的。 但是取的时候怎么取?你收到的指令可能是2个数据,也可能是3个数据,几种长度不一样的指令混在
[单片机]
基于STM32定时器实现毫秒延时函数
STM32定时器包含基本定时器、通用定时器和高级定时器,其中TIM6和TIM7是STM32当中的基本定时器,作为初学者,先从最基本的学起最容易,下面我们用这个定时器实现毫秒延时函数来入门STM32定时器的应用。 学习单片机,就是学习使用它的寄存器。即便你用库函数,寄存器也是必须要学习的。 TIM6 TIM7的寄存器如下所示: 先略览一下寄存器,CR1和CR1是控制寄存器,SR是状态寄存器,ARR就是溢出值寄存器,CNT就是计数器的当前值,PSC是预分频寄存器。预分频寄存器?听的傻眼了吧,前面几个个寄存器听的还能理解,一听到预分频寄存器,好像不知道是干嘛用的。瑞生来给你解释一下吧,你可以给预分频寄存器里面写一个从0~6
[单片机]
基于<font color='red'>STM32</font>定时器实现毫秒延时函数
STM32之keil MDK下建立第一个工程
一、使用固件库建立一个工程 我打算先从软件编程学起,以前用过KEIL 和IAR,IAR我比较熟悉,因为参加电子设计竞赛的时候,就是用它编程MSP430程序的。但我还是选择了KEIL,也许因为资料比较多,或者别的吧,我没分析过KEIL 和IAR代码效率如何,因为这不是我现在要考虑的,软件都只是工具而已。 我去百度搜索了几篇如何在KEIL MDK环境下建立STM32工程,加上自己的实践。我也把我的初学者步骤贴出来。 1、了解STM32F103的固件库 我在网上下了STM32F103的固件库-----stm32f10x_stdperiph_lib 3.5V版的,里面内容如图所示,据说STM32F103和STM32F101都能用。
[单片机]
<font color='red'>STM32</font>之keil MDK下建立第一个工程
通用同步异步收发器 (USART)的使用
今日实验:实现STM32F407开发板与PC端的串口通信 两台计算机进行通信时,最少可以只要三根线,分别为RXD、TXD、GND ;单片机也是一个微型计算机。 前期知识 关于TTL电平 TTL是Transistor-Transistor Logic,即晶体管-晶体管逻辑的简称,它是计算机处理器控制的设备内部各部分之间通信的标准技术。TTL电平信号应用广泛,是因为其数据表示采用二进制规定,+5V等价于逻辑”1”,0V等价于逻辑”0”。 数字电路中,由TTL电子元器件组成电路的电平是个电压范围,规定: 输出高电平 =2.4V,输出低电平 =0.4V; 输入高电平 =2.0V,输入低电平 =0.8V。 关于RS232电平 R
[单片机]
通用同步异步收发器 (USART)的使用
C51:串口通信接收与发送
假设要发送一组数据 Send 一般采用查询发送(循环发送)方式: unsigned char Send ; //发送量 unsigned char i; //循环量 for(i=0;i 10;i++) { SBUF= Send ; //发送 while(TI==0); //等待发送完成 TI=0; //清标志 } 采用中断发送方式: unsigned char Send ; //发送量 unsigned char num; //发送数据
[单片机]
STM32标准库及的Keil软件包下载
在安装好Keil开发工具后,还需要分别安装STM32相关的软件包及相关的函数库。 由于官网一般下载速度较慢,将常用及标准库上传在网盘上,可自行下载。 Keil软件包 链接:https://pan.baidu.com/s/1Uh1J0L9gZSIWKtDzocQWJA 提取码:gdcw STM32标准库 链接:https://pan.baidu.com/s/1NQXKnOTQAr0P3NMqrnI2Ww 提取码: zs99 STM32的软件包属于Keil相关,下载方法如下: 1. 打开链接:https://www.keil.com/dd2/Pack/ 2. 下拉找到所使用的STM32芯片的型号,点击右
[单片机]
<font color='red'>STM32</font>标准库及的Keil软件包下载
STM32例程详解:GPIO之JTAG_Remap
完整的工程文件夹在这里下载 http://pan.baidu.com/s/1EFgkw KEIL—MDK 4.72a调试通过 //头文件包含 ------------------------------------------------------------------*/ #include stm32f10x.h #include stm32_eval.h //译者注:意法半导体公司为其开发板上模块所写的头文件 GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO初始化结构体,其原型由GPIO_InitTypeDef确定 //私有 函数原型 ----------------------
[单片机]
RyanMqtt移植指南
测试环境:stm32F401RCT6、RT-Thread版本: v4.1.0、RT-Thread Studio版本: 2.2.6、网络硬件使用ec800m移植at_socket使用sal框架。 1、移植介绍 RyanMqtt 库希望应用程序为以下接口提供实现: system 接口 RyanMqtt 需要 RTOS 支持,必须实现如下接口才可以保证 mqtt 客户端的正常运行 network 接口 RyanMqtt 依赖于底层传输接口 API,必须实现该接口 API 才能在网络上发送和接收数据包 MQTT 协议要求基础传输层能够提供有序的、可靠的、双向传输(从客户端到服务端 和从服务端到客户端)的字节流 time 接口
[单片机]
RyanMqtt移植指南
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved