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

电子商务网站建设成都seo公司培训课程

电子商务网站建设成都,seo公司培训课程,wordpress上传pdf文件,电子商务网站建设 百度文库目录 一、USART串口 1.串口参数及时序 2.USART简介 3.配置USART基本结构 4.初始化模板 (1) 接收一个数据 (2) 发送一个数据 一、USART串口 1.串口参数及时序 波特率:串口通信的速率起始位:标志一个数据帧的开始,固定为低电平数据位:数据帧的有效载荷&#…

目录

一、USART串口

1.串口参数及时序

2.USART简介 

3.配置USART基本结构

4.初始化模板 

(1) 接收一个数据

(2) 发送一个数据


一、USART串口

1.串口参数及时序

  • 波特率:串口通信的速率
  • 起始位:标志一个数据帧的开始,固定为低电平
  • 数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行
  • 校验位:用于数据验证,根据数据位计算得来
  • 停止位:用于数据帧间隔,固定为高电平

本节展示串口收发的功能,通常使用波特率为9600,8位数据位,即无校验位,停止位长度为1的时序。


2.USART简介 

·USART (Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步收发器

·USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里

·自带波特率发生器,最高达4.5Mbits/s

·可配置数据位长度(8/9)、停止位长度(0.5/1/1.5/2)

·可选校验位(无校验/奇校验/偶校验)

·支持同步模式、硬件流控制、DMA、智能卡、IrDA、LIN

·STM32F103C8T6 USART资源:USART1、USART2、USART3(USART1是APB2总线的设备,剩下的是APB1的设备)


3.配置USART基本结构


4.初始化模板 

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//把PA9配置为复用推挽输出,供USART的TX使用
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);
//初始化PA10引脚
GPIO_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);//初始化USART 9600波特率 无流控 无校验 8位字长 1位停止位 选择发送和接收模式
USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate=9600;//波特率
USART_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;//停止位长度
USART_InitStructure.USART_WordLength=USART_WordLength_8b;//字长选择8位
USART_Init(USART1,&USART_InitStructure);//开启RXNE标志位到NVIC的输出
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//优先级分组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);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);

查看引脚定义表

可见USART1的TX和RX分别对应PA9和PA10引脚,初始化PA9时要配置成复用推挽输出模式。

关于USART的结构体参数USART_Mode,需要接收或发送的哪一个功能就选哪一个,两个都要就用“|”操作或起来。


(1) 接收一个数据

方法一:

模板里使用中断触发接收数据,首先开启RXNE到中断的通道,用USART_ITConfig函数,再配置NVIC优先级分组等参数;关于RXNE标志位

RXNE:读数据寄存器非空(Read data register not empty)

  • 当RDR移位寄存器中的数据被转移到USART DR寄存器中,该位被硬件置位。如果USART CR1寄存器中的RXNEIE为1,则产生中断。对USARTDR的读操作可以将该位清零。RXNE位也可以通过写入0来清除,只有在多缓存通讯中才推荐这种清除程序。
  • 0:数据没有收到:
  • 1:收到数据,可以读出。

 有数据时会触发中断,中断函数从启动文件里找

中断函数示例:

void USART1_IRQHandler(void)
{if(USART_GetFlagStatus(USART1,USART_IT_RXNE)==SET){//。。。要进行的操作USART_ClearITPendingBit(USART1,USART_IT_RXNE);//若读出收到的数据,不用手动清零}
}

读出数据用函数USART_ReceiveData,手册里说读DR硬件会自动清零标志位。

方法二:

在主函数里不断判断RXNE标志位,如果置1了,就说明收到数据了,那再调用ReceiveData,读取DR寄存器就行了。

int main(void)
{OLED Init();serial Init();'while(1){if(USART GetFlagstatus (USART1 USART FLAG RXNE)==SET){RxData=USART ReceiveData(USART1);OLED ShowHexNum(l,1,RxData,2);}}
​​​​​​​}


(2) 发送一个数据

发送数据用函数USART_SendData,发送完判断一下TXE标志位即可

关于TXE标志位

  • TXE:发送数据寄存器空(Transmit data register empty)当TDR寄存器中的数据被硬件转移到移位寄存器的时候,该位被硬件置位。如果USARTCR1寄存器中的TXEIE为1,则产生中断。对USARTDR的写操作,将该位清零。
  • 0:数据还没有被转移到移位寄存器
  • 1:数据已经被转移到移位寄存器。

为1时标志可以继续发了,和RXNE对应,为1时表示接收到了数据,可以读了,以免继续发数据被覆盖了。 

发送数据代码示例

//发送一个数据
void Serial_SendByte(uint8_t Byte)
{USART_SendData(USART1,Byte);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);//TXE发送数据寄存器空标志位,为1即空//硬件会将标志位清零
}

见手册描述,我们对DR进行读操作,硬件会将标志位清零,所以这里不需要我们像收数据一样手动清除标志位。 

http://www.dtcms.com/wzjs/47725.html

相关文章:

  • 这周新闻热点事件佛山快速排名seo
  • 中企动力邮箱登陆入口信息流广告优化师培训
  • 有用vue做web网站的吗百度广告代理商加盟
  • wordpress获取当前页地址优化营商环境心得体会2023
  • 可以先做网站后备案吗免费seo在线优化
  • 百度地图开发平台安卓优化大师历史版本
  • 中山网站建设文化效果竞价外包推广
  • iis下建多个网站网站快速优化排名官网
  • 营销网站的功能构成东莞网站建设做网站
  • 购物网站代码app推广方案策划
  • 苏州网站建设费用外链网
  • 网站开发技术主管工作职责seo难不难学
  • 免费网站自动优化软件网站如何优化关键词排名
  • 淘宝美工培训班河南网站关键词优化
  • 群晖 wordpress 性能网站seo具体怎么做
  • 动态网站用什么做竞价排名的定义
  • 珠宝网站源码下载百度app免费下载
  • 旅游网站开发设计营销网络的建设
  • phpstudy做正式网站公司推广方案
  • 自己 做 网站百度集团公司简介
  • 美国主要手表网站网站制作设计
  • 网站外链有什么用武汉seo优化公司
  • 关于做情侣的网站的图片大全软文广告发布平台
  • ps做网站72分辨率企业qq多少钱一年
  • 如果做公司网站百度新闻头条新闻
  • 淮南网站制作公司百度搜索引擎优化案例
  • 网站设计目标怎么写深圳网络推广哪家比较好
  • 金坛企业网站建设公司南宁seo教程
  • asp.net 做网站百度首页排名代发
  • 什么网站做海报seo网站优化工具大全