stm32f103 串口通讯

发布者:平和宽容最新更新时间:2020-04-25 来源: eefocus关键字:stm32f103  串口通讯  调试信息 手机看文章 扫描二维码
随时随地手机看文章

串口通讯(SerialCommunication)是一种设备间非常常用的串行通讯方式,因为它简单 便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。


stm32f103 串口通讯大致可以分为这五步

1.初始化gpio口,使能RX和TX引脚GPIO时钟

2.初始化USART,和USART时钟;

3.初始化nvic 总中断

4.编写字符串发送函数

5.编写USART 中断服务函数


1.初始化gpio口,使能RX和TX引脚GPIO时钟

void init_uart_gpio(void)

{

GPIO_InitTypeDef tx;

GPIO_InitTypeDef rx;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

tx.GPIO_Mode=GPIO_Mode_AF_PP;

tx.GPIO_Pin=GPIO_Pin_9;

tx.GPIO_Speed=GPIO_Speed_50MHz;

rx.GPIO_Mode=GPIO_Mode_IN_FLOATING;

rx.GPIO_Pin=GPIO_Pin_10;

GPIO_Init(GPIOA,&tx);

GPIO_Init(GPIOA,&rx);

}


2.初始化USART,和USART时钟;

void init_uart1()

{

USART_InitTypeDef uart;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

uart.USART_BaudRate=115200;

uart.USART_HardwareFlowControl= USART_HardwareFlowControl_None;

uart.USART_Parity=USART_Parity_No;

uart.USART_StopBits=USART_StopBits_1;

uart.USART_WordLength=USART_WordLength_8b;

uart.USART_Mode= USART_Mode_Rx|USART_Mode_Tx;

USART_Init(USART1,&uart);

USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);

USART_Cmd(USART1,ENABLE);


3.初始化nvic 总中断

void init_uart_nvic(void)

{

NVIC_InitTypeDef nvic;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

nvic.NVIC_IRQChannel=USART1_IRQn;

nvic.NVIC_IRQChannelPreemptionPriority=1;

nvic.NVIC_IRQChannelSubPriority= 1;

nvic.NVIC_IRQChannelCmd =ENABLE;

NVIC_Init(&nvic);

}


4.编写字符串发送函数

void Usart_SendByte(USART_TypeDef *pUSARTx,uint8_t ch)

{

USART_SendData(pUSARTx,ch);

while(USART_GetFlagStatus(pUSARTx,USART_FLAG_TXE)==RESET);

}

void Usart_SendString(USART_TypeDef *pUSARTx,char *str)

{

while(*str!='')

{

Usart_SendByte(pUSARTx,*str);

str++;

}

while(USART_GetFlagStatus(pUSARTx,USART_FLAG_TC)==RESET);

}


5.编写USART 中断服务函数

void USART_IRQHandler(void)

{

uint8_t ucTemp;

if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET){

ucTemp=USART_ReceiveData(USART1);

USART_SendData(USART1,ucTemp);

}

}

关键字:stm32f103  串口通讯  调试信息 引用地址:stm32f103 串口通讯

上一篇:Stm32 基于蓝牙的串口通信 详细篇
下一篇:STM32F1串口通信总结

推荐阅读最新更新时间:2024-11-10 11:56

STM32F103C8T6串口通讯说明
对于USART初始化结构体的说明 初始库函数定义在stm32f10x_usart.c 文件中,即USART_InitTypeDef。 USART_BaudRate:波特率设置。一般设置为 2400、9600、19200、115200。波特率越高,传输速率越快。 USART_WordLength:数据帧字长,可选 8 位或 9 位。我们一般使用8位。 一个字符帧发送需要三个部分:起始位 + 数据帧 + 停止位。 起始位是一个位周期的低电平,位周期就是每一位占用的时间;数据帧就是我们要发送的 8 位或 9 位数据,数据是从最低位开始传输 的;停止位是一定时间周期的高电平。 为什么是9位?STM32F103 系列
[单片机]
stm32f103】stm32 外部中断(寄存器版)
中断分类 STM32的EXTI控制器支持19 个外部中断/ 事件请求。每个中断设有状态位,每个中断/ 事件都有独立的触发和屏蔽设置。 STM32的19个外部中断对应着19路中断线,分别是EXTI_Line0-EXTI_Line18: 线0~15:对应外部 IO口的输入中断。 线16:连接到 PVD 输出。 线17:连接到 RTC 闹钟事件。 线18:连接到 USB 唤醒事件。 触发方式:STM32 的外部中断是通过边沿来触发的,不支持电平触发。 外部中断分组:STM32 的每一个GP
[单片机]
【<font color='red'>stm32f103</font>】stm32 外部中断(寄存器版)
8051/2单片机常用的本地通讯方式 UART,RS485,I2C,SPI 之 UART串口通讯 1
一 ,说明 1. 串口UART, 波特率:9600 接设备的时候,一般只接GND RX TX,不会接Vcc,避免与目标设备上的供电冲突。 1.1 RS485标准( +2V ~ +6V:1 / -6V ~ -2V:0) 1.2 RS232标准( -15V ~ -3V:1 / +3V ~ +15V:0),需要MAX232进行电平反转后,才能与MCU进行通讯 1.3 TTL标准( 2.4V--5V:1 / 0V--0.5V:0 ) 二、演示 三、代码: /** * 8051/2 DEMO 3 * 常用的本地通讯方式 * 1. 串口UART, 波特率:9600 * 接设备的时候,一般只接GND RX TX,
[单片机]
8051/2单片机常用的本地通讯方式 UART,RS485,I2C,SPI 之 UART<font color='red'>串口通讯</font> 1
STM32F103 GPIO内部电路图讲解
  GPIO结构图   GPIO工作模式   输入模式:输入浮空、输入上拉、输入下拉、模拟输入   输出模式:开漏输出、开漏复用功能、推挽式输出、推挽式复用功能   输入浮空   输入上拉   输入下拉   模拟输入   开漏输出   开漏复用功能   推挽式输出   推挽式复用功能
[单片机]
<font color='red'>STM32F103</font> GPIO内部电路图讲解
stm32f105 spi 移植到stm32f103
最近移植dw1000的程序,把stm32f105版本移植到103版本上去。 (1)发现两者的区别主要在于时钟上,具体请参考stm32 datasheet: 将始终改掉之后,SPI就可以运行stm32f103上了。 (2)PA15和PB3默认是用于JLINK的,需要启用复用时钟,代码如下: RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA ,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
[单片机]
STM32F103串口1 printf函数的实现
  在单片机中使用最多的通信接口基本就是串口了,说起串口就不得不提串口中最常用的一个函数就是打印函数printf()函数,在上位机上中这个函数直接从库函数中调用就可以了,那么在单片机中这个函数要怎么使用呢?能不能将这个函数和串口1对应起来,当然是有方法的。   下面就通过代码来演示一下如何在串口1上使用printf()函数的功能。 void uart_init(u32 bound) { //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_Ini
[单片机]
<font color='red'>STM32F103</font>串口1 printf函数的实现
STM32串口通讯 UART
三种方式:查询,中断,DMA 通用同步异步收发器(USART)提供了一种灵活的方法来与使用工业标准NR 异步串行数据格式的外部设备之间进行全双工数据交换。 USART利用分数波特率发生器提供宽范围的波特率选择。 它支持同步单向通信和半双工单线通信。它也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。用于多缓冲器配置的DMA方式,可以实现高速数据通信。 主要特性: 全双工的,异步通信 NR 标准格式 分数波特率发生器系统 -发送和接收共用的可编程波特率,最高到4.5Mbits/s 可编程数据字长度(8位或9位) 可配
[单片机]
STM32f103 双串口配置和中断
//代码仅仅是配置使能串口和相应的中断处理函数,具体功能需要自己定义 //IAR 7.1 #include stm32_uart.h uint8_t card_ture=0; uint16_t add_count=0; uint8_t Key_Data ={0}; uint8_t Media_Flag=0; uint8_t card_code ; // save the card SN, valid or invalid uint8_t Temp_Card_Num ; uint8_t cardcode_rx_complete = 0; uint32_t uart_config_record_map = { 0, UAR
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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