标题:
STM32串口通讯USART收发程序 收到串口发送数据,再回送给串口 已验证
[打印本页]
作者:
51hei学习技术中
时间:
2017-4-8 15:22
标题:
STM32串口通讯USART收发程序 收到串口发送数据,再回送给串口 已验证
stm32单片机实现的。已验证,实现功能,收到串口发送数据,再回送给串口
0.png
(56.95 KB, 下载次数: 191)
下载附件
2017-4-8 15:20 上传
源码工程下载:
基本例程-USART收发.rar
(585.15 KB, 下载次数: 452)
2017-4-8 15:21 上传
点击文件名下载附件
源代码:
/********************
* 文件名 :main.c
* 描述 :通过串口调试软件,向板子发送数据,板子接收到数据后,立即回传给电脑。
* 实验平台:MINI STM32开发板 基于STM32F103VET6
* 库版本 :ST3.0.0
*********************************************************/
#include "stm32f10x.h"
#include "usart1.h"
int main(void)
{
SystemInit(); //配置系统时钟为 72M
USART1_Config(); //USART1 配置
while (1)
{
UART1Test();
}
}
复制代码
/****************
* 文件名 :usart1.c
* 描述 :配置USART1
* 实验平台:MINI STM32开发板 基于STM32F103VET6
* 硬件连接:------------------------
* | PA9 - USART1(Tx) |
* | PA10 - USART1(Rx) |
* ------------------------
* 库版本 :ST3.0.0
**********************************************************************************/
#include "usart1.h"
#include <stdarg.h>
void USART1_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
/* 使能 USART1 时钟*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);
/* USART1 使用IO端口配置 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
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_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输入
GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化GPIOA
/* USART1 工作模式配置 */
USART_InitStructure.USART_BaudRate = 115200; //波特率设置:115200
USART_InitStructure.USART_WordLength = USART_WordLength_8b; //数据位数设置:8位
USART_InitStructure.USART_StopBits = USART_StopBits_1; //停止位设置: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(USART1, &USART_InitStructure); //初始化USART1
USART_Cmd(USART1, ENABLE);// USART1使能
}
/*发送一个字节数据*/
void UART1SendByte(unsigned char SendData)
{
USART_SendData(USART1,SendData);
while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
}
/*接收一个字节数据*/
unsigned char UART1GetByte(unsigned char* GetData)
{
if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET)
{ return 0;//没有收到数据
}
*GetData = USART_ReceiveData(USART1);
return 1;//收到数据
}
/*接收一个数据,马上返回接收到的这个数据*/
void UART1Test(void)
{
复制代码
作者:
川页人生
时间:
2017-12-15 15:41
坑爹啊
作者:
nieqianli
时间:
2017-12-16 12:45
太好了,可以省事了,
作者:
2539680293
时间:
2018-1-9 19:30
乱码啊
作者:
yfhaotian
时间:
2018-6-6 20:52
厉害
作者:
2335604347
时间:
2018-7-2 19:41
感觉这个会有用诶,可是只差两个黑币了,我的这个评论能获得两个黑币吗,如果行的话我就能花5个黑币下载这个程序了
作者:
chenpeiwen151
时间:
2018-8-2 23:49
最近正好在学32,单向给串口调试发送消息搞定了,就是这个不会了,感谢楼主
作者:
guochuan4234
时间:
2019-1-31 22:54
您是怎么验证的?我用串口调试助手怎么接受没有反应啊?
作者:
longer1997
时间:
2019-12-26 13:53
真的有用么?期待有所收获
作者:
1311260
时间:
2020-12-3 18:45
用串口调试助手怎么接受没有反应啊
作者:
17803856022
时间:
2021-4-6 09:52
接收没效
作者:
杰jj
时间:
2021-4-10 18:16
程序编译通过,但调试助手不显示
作者:
SGW2020
时间:
2021-10-6 15:37
我是通过仿真,可以接受,但是不能发送
作者:
WX先生
时间:
2022-7-7 13:17
usart1.h文件的内容
#ifndef __USART1_H
#define __USART1_H
#include "stm32f10x.h"
#include <stdio.h>
void USART1_Config(void);
void UART1Test(void);
#endif /* __USART1_H */
复制代码
作者:
wanglili0614
时间:
2022-7-8 10:46
代码不全
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1