news 2026/9/1 5:05:49

STM32 (6)串口通信USART 发送和接收

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STM32 (6)串口通信USART 发送和接收

文章目录

    • 通信接口
    • USART基本结构
    • 串口发送
    • 串口接收

通信接口


全双工:有两个通道,发送接受可以同时进行
半双工:只有一个通道,不能同时进行
USAER:TX数据发送脚,RX接收脚
I2C:SCL时钟,SDA数据
SPI:SCLK时钟,MOSI主机输出数据脚(发送),MISO输入(接收),CS片选,用于指定通信对象
CAN:用两个引脚表示差分数组
USB:同上
前三个都要共地
差分:抗干扰强,速度快,距离远

USART基本结构


1.开启USART和GPIO的时钟
2.GPIO初始化,TX配置成复用输出,RX输入
3.配置USART初始化
USART_Init()
4.开启USART(只需要发送功能)如果还需要接收功能就要配置中断ITConfig和NVIC
USART_Cmd()
函数
USART_SendData()发送数据写DR寄存器
USART_ReceiveData()接收数据读DR寄存器

串口发送

代码

#include"stm32f10x.h"// Device header#include"stdio.h"//单片机没有屏幕需要进行重定向voidSerial_Init(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);USART_InitTypeDef USART_InitStructure;USART_InitStructure.USART_BaudRate=9600;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_Tx;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_Init(USART1,&USART_InitStructure);USART_Cmd(USART1,ENABLE);}voidSerial_SendByte(uint8_tByte)//发送函数{USART_SendData(USART1,Byte);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);//下一次在生成标志位自动清零}voidSerial_SendArray(uint8_t*Array,uint16_tLength)//发送数组{uint16_ti;for(i=0;i<Length;i++){Serial_SendByte(Array[i]);}}voidSerial_SendString(char*String)//发送字符串{uint8_ti;for(i=0;String[i]!=0;i++){Serial_SendByte(String[i]);}}uint32_tSerial_Pow(uint32_tx,uint32_ty){uint32_tResult=1;while(y--){Result*=x;}returnResult;}voidSerial_SendNum(uint32_tNumber,uint32_tLength)//输出数字函数,因为直接Serial_SendByte(123),这里的123会被ascii表识别成其他值{uint8_ti;for(i=0;i<Length;i++){Serial_SendByte(Number/Serial_Pow(10,Length-i-1)%10+0x30);}}intfputc(intch,FILE*f){Serial_SendByte(ch);returnch;}

主函数代码

#include"stm32f10x.h"// Device header#include"Delay.h"#include"OLED.h"#include"Serial.h"intmain(void){OLED_Init();Serial_Init();// Serial_SendByte(0x41);// uint8_t MyArray[]={0x41,0x42,0x43,0x44};// Serial_SendArray(MyArray,4);// Serial_SendString("xswl");// Serial_SendNum(12345,5);// printf("Num=%d\r\n",666);charString[100];sprintf(String,"Num=%d\r\n",666);//后面的参数可以变Serial_SendString(String);while(1){}}

串口接收

uint8_tSerial_GetRxFlag(void){if(Serial_RxFlag==1){Serial_RxFlag=0;return1;}return0;}uint8_tSerial_GetRxData(void){returnSerial_RxData;}//上面两个函数只是为了获取标志位和数据的voidUSART1_IRQHandler(void)//启动文件{if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET){Serial_RxData=USART_ReceiveData(USART1);Serial_RxFlag=1;USART_ClearITPendingBit(USART1,USART_IT_RXNE);}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 5:05:47

如梦令.无尽意 观古今天地,如镜中回眸。一念迷则万劫繁花,一念觉则刹那枯寂。然觉迷相生,枯荣互映,方知意之尽头,正是意之起处。戏罢人散,秋池印月,此忆绵绵,无终无始。遂以“无尽意”笼之。 攘攘熙熙古今

如梦令.无尽意 观古今天地&#xff0c;如镜中回眸。一念迷则万劫繁花&#xff0c;一念觉则刹那枯寂。然觉迷相生&#xff0c;枯荣互映&#xff0c;方知意之尽头&#xff0c;正是意之起处。戏罢人散&#xff0c;秋池印月&#xff0c;此忆绵绵&#xff0c;无终无始。遂以“无尽意…

作者头像 李华
网站建设 2026/9/1 5:04:25

相机拉流的

相机拉流的 相机拉流拿不到最新帧&#xff08;读到旧帧、延迟持续累积&#xff09; 根因&#xff1a;多层缓冲区堆积&#xff1a;相机网络接收缓冲区 → FFmpeg/GStreamer解码队列 → SDK/OpenCV应用层缓冲区。处理帧速度慢于相机输出帧率&#xff0c;旧帧不断积压&#xff0c;…

作者头像 李华
网站建设 2026/9/1 5:04:13

基于机器学习的Solana链上Meme币欺诈预测:从特征工程到模型部署

1. 这篇文章真正要解决的问题 如果你在2024年关注过加密货币市场&#xff0c;尤其是Solana链上的Meme币&#xff0c;那么“Rug Pull”&#xff08;卷款跑路&#xff09;这个词一定让你心有余悸。一个项目在几分钟内筹集数百万美元&#xff0c;然后开发者突然消失&#xff0c;代…

作者头像 李华
网站建设 2026/9/1 5:01:32

机器人直驱灵巧手技术解析:从电机到仿生操作的工程实践

这次我们来看一个关于机器人灵巧手研发的纪录片项目。这个项目不是传统的软件工具或AI模型&#xff0c;而是一部深度记录WUJI团队七年创业历程的技术纪实内容。对于关注机器人技术、硬件创业、灵巧手研发以及人机交互前沿的开发者、工程师和科技爱好者来说&#xff0c;这部纪录…

作者头像 李华
网站建设 2026/9/1 5:01:17

动态工具组合创新:从AI代码生成到自动化工作流的工程实践

最近在探索AI编程工具时&#xff0c;发现了一个挺有意思的现象&#xff1a;很多开发者开始不满足于单一工具的“问答式”代码生成&#xff0c;而是尝试将不同的动态工具组合起来&#xff0c;创造出更高效、更具创意的开发工作流。这让我想起了自己之前的一个项目&#xff0c;当…

作者头像 李华
网站建设 2026/9/1 4:59:31

新手AI写小说总卡文?实测8款爆火的AI写小说工具,从此告别卡文!

深耕网文写作和AI工具实测好几年&#xff0c;试过几十款写小说软件&#xff0c;大部分功能鸡肋、适配网文极差&#xff0c;全是套路模板生成内容&#xff0c;根本帮不上实际创作。 很多作者不管是新人小白还是兼职写手&#xff0c;找ai写小说工具都只想解决实打实的问题&#…

作者头像 李华