当前位置: 首页 > news >正文

XCOSnTh单片机的串口

串口是一个泛称,具体的串口有RS232、TTL、RS485等等

单片机的串口

上图中,RX为单片机串口数据的接收线,TX为单片机串口数据的发送线,单片机的异步串口就这2根线,如果想要串口工作起来,还需要一根GND线(因为在这个单片机中,所有的电压信号都是相对于GND的),串口靠有无电压(高低电平)来传递信号,【此单片机的串口为TTL串口(这是一个很具体的名字,在设计硬件电路的时候,称为TTL电路设计)】其中信号的格式如下

1表示高电平(有电压),0表示低电平(无电压)

由上图可知串口在没有传输数据的时候,保持为高电平状态

如上图所示串口的每一帧数据一般有10位分别为初始位、8位数据和结束位(停止位),每位的保持时间称为波特率(比如115200Hz、9600Hz)

1、关于波特率的配置代码为:

/*USART_InitTypeDef USART_InitStructure;*/
USART_InitStructure.USART_BaudRate = 115200;//波特率:115200

2、串口是可以全双工、半双工、单工的通信接口,在该单片机中的配置代码为:

/*USART_InitTypeDef USART_InitStructure;*/
USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;//模式:发送和接收模式

当配置为USART_InitStructure.USART_Mode = USART_Mode_Tx;时候串口就只具备发送功能。

当配置为USART_InitStructure.USART_Mode = USART_Mode_Rx;时候串口就只具备接收功能。

3、通常使用的串口为异步串口,所以将硬件流控配置为【无硬件流控】,代码为:

/*USART_InitTypeDef USART_InitStructure;*/
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//流控:无

4、串口有数据校验(奇偶校验)的功能,但通常不使用,所以代码为【无校验】

/*USART_InitTypeDef USART_InitStructure;*/
USART_InitStructure.USART_Parity = USART_Parity_No;//校验:无

5、通常配置停止位为1位,数据位为8位【1位停止位、8位数据位】

/*USART_InitTypeDef USART_InitStructure;*/
USART_InitStructure.USART_StopBits = USART_StopBits_1;//停止位:1位
USART_InitStructure.USART_WordLength = USART_WordLength_8b;//数据位宽度:8位

6、在STD库中调用初始化函数,通过上面的配置即可完成TTL串口的初始化,代码为

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

--------------------------------------------------------------------------------------------------------------------------------

完整的串口程序为:

#include"STM32F10X.h"
void USART1_IRQHandler(void)
{//串口接收中断if (USART_GetITStatus(USART1, USART_IT_RXNE) == SET){uint16_t temp = USART_ReceiveData(USART1);//读取串口接收到的数据	USART_SendData(USART1,temp);//将串口接收到的数据发送出去}
}
void TTL_SerialInit()
{//【串口配置】{//1、串口的GPIO配置RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能GPIOA的时钟GPIO_InitTypeDef GPIO_InitStructure;//PA9:TxGPIO_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);//初始化PA9:Tx//PA10:RxGPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化PA10:Rx}{//2、串口配置RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//使能串口时钟USART_InitTypeDef USART_InitStructure;USART_InitStructure.USART_BaudRate = 115200;//波特率:115200USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//流控:无USART_InitStructure.USART_Mode = USART_Mode_Tx|USART_Mode_Rx;//模式:发送和接收模式USART_InitStructure.USART_Parity = USART_Parity_No;	//校验:无USART_InitStructure.USART_StopBits = USART_StopBits_1;//停止位:1位USART_InitStructure.USART_WordLength = USART_WordLength_8b;//数据位宽度:8位USART_Init(USART1, &USART_InitStructure);//串口初始化{//3、串口的接收中断配置NVIC_InitTypeDef NVIC_InitStructure;NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;NVIC_Init(&NVIC_InitStructure);	USART_Cmd(USART1, ENABLE);}USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);	//打开串口接收中断}
}
static int PrintPutC(int ch)
{USART_SendData(USART1, ch);//发送一个字节的数据while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);	//等待串口发送完成return ch;
}

---------------------------------------------------------------------------------------------------------------------------------

RS232串口经典电路图

RS485串口经典电路图

http://www.dtcms.com/a/414933.html

相关文章:

  • SSR/SSG:Next.js、Nuxt.js的SEO优化与缓存策略
  • 我想做个网站推广怎么做苏州好的网络科技公司
  • 9.27 深度学习9
  • 图数据库:三类图模型核心区别是什么?属性图、资源描述框架和超图。
  • 锥优化介绍(2025年9月27日)
  • 淄博网站制作定制优化怎么在另外一台电脑的浏览器打开自己做的网站地址栏输入什么
  • 做企业网站收费多少钱苏州吴江区城市建设局网站
  • 鸿蒙:PickerDialog 日期选择弹窗实现流程
  • Vue 简介
  • 电商网站项目经验介绍中国企业500强出炉
  • 网站建设 赣icp 南昌成都网站设计哪家比较好
  • Coze源码分析-资源库-删除数据库-后端源码-安全与错误处理
  • .net 程序部署 Docker从零开始实战攻略
  • ps网站轮播图怎么做的宁波外贸公司排名前十
  • wordpress个人博客前台模板泸州网站优化推广
  • OpenCV1
  • 做阿里网站卖东西赚钱智慧团建团员注册入口
  • 拿子游戏
  • 3D 生成模型 开源-混元 3D-Part
  • 了解网站开发的一般过程别人做的网站自己想更新
  • 给周杰伦做网站简易小程序制作
  • 重庆网站设计中心河北手机响应式网站建设设计
  • LBM+FCNN耦合模型:精准高效预测海底裂缝溶解的新工具
  • To B AI 创业黄金打法:从赋能到重塑业务流程
  • 6. 绝对值
  • CTFHub RCE通关笔记5:文件包含 远程包含
  • Redis-实战(短信登录)
  • 网站怎样制作流程网页打不开但是有网什么原因禁用
  • 彩票做的最好是个网站好泸州工投建设集团有限公司网站
  • Zabbix监控IRIS数据库