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

百科网站模板网站实名制注册怎么做

百科网站模板,网站实名制注册怎么做,积分商城网站开发,青岛网站建设在哪前边我们学的都是通用的功能,例如GPIO、中断,现在我们要学习的是某一个特定的功能。典型的就是通讯功能。其中,最简单的通讯协议就是串口了。 一、串口_通讯基础知识 1.1 串行与并行 按数据传送的方式分类的。 串行通信一位一位传输&…

前边我们学的都是通用的功能,例如GPIO、中断,现在我们要学习的是某一个特定的功能。典型的就是通讯功能。其中,最简单的通讯协议就是串口了。

一、串口_通讯基础知识

1.1 串行与并行

按数据传送的方式分类的。

串行通信一位一位传输,并行则是8位(16、32位)同行。(按位传输)

频率越高,电流产生电磁场,干扰越大。

早期用的硬盘ATA,后来有了SATA硬盘(S是串行的意思)

传输接口基本上都是串行。

1.2 单工、半双工、全双工

单工传输:数据单向传输,只能A-->B

半双工传输:数据双向传输,但同一时刻只能传一个方向,不可同时。如对讲机!

全双工传输:至少2条线,同时双向传输。

1.3 同步和异步

同步和异步区别:有无时钟!

同步至少两根线:一个传输时钟信号,一个传输数据信号

异步只有一根线,单工或半双工

二、串口通讯:

两根线实现全双工

串口通讯协议:

波特率:

奇偶校验位:

奇校验:所有1加起来是一个奇数

偶校验:所有1加起来是一个偶数

空闲位:

分数波特率的产生

小数部分:DIV_Fraction

整数部分:DIV_Mantissa

状态寄存器SR

IDEA:0没有检测到空闲 ,1检测到空闲总线

TXE:

TC:

RXNE:

控制寄存器1USART_CR1

控制寄存器2USART_CR2

三、USART外设

同步异步收发器,串行通信设备,全双工数据交换。

UART与USART相比去掉了同步通讯功能

USART1通讯速率最高,可以达到4.5Mbps。2,3,4,5最高只有USART1的一半。

我们在stm32中,调试口用USART1.

以前台式电脑,就是以上的Bj9接口. 

UART是异步收发器。UART,有时指设备,有时指协议。

RS485两根线,作差分传输,半双工。

四、波特率设置

分数波特率的产生

接收器和发送器的波特率在USARTDIV的整数和小数寄存器中的值应设置成相同。

fck=72MHZ

如果DIV_Mantissa=27,整数是27,DIV_Fraction=12(USART_BRR=0x1BC),小数是12.

例二是我们要常用的,可以配波特率。

五、串口所用寄存器

TDR

RDR

检测到空闲帧,IDLE置1.

六、寄存器实现

目前很多电脑没有串口接口,为了使用串口,我们自制的下载器STLink2.1拥有USB转串口的功能。

所用引脚:

上位机,串口调试工具:

文末给大家分享的资料包里有。我们能通过串口工具向stm32发信息。当然stm32要想收到,必须有相应的接收程序。

2.1 创建工程

 

创建新的外设代码文件USART

 

有了新的文件,KEIL里面必须配置上。

 

之后便是通过VSCODE打开。

2.2 代码编写 

将usart.c和usart.h,预处理编码做好。声明需要编写的函数。

我们用的usart1在APB2系统总线上。

我们也要开启GPIO的时钟,因为有输入输出。

usart.h

#ifndef __USART_H
#define __USART_H#include "stm32f10x.h"
//初始化
void USART_Init(void);//发送一个字符
void USART_SendChar(uint8_t ch);//接收一个字符
uint8_t USART_ReceiveChar(void);#endif

usart.c 

#include "usart.h"//初始化
void USART_Init(void)
{//开启时钟RCC->APB2ENR |= RCC_APB2ENR_USART1EN;RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;//GPIO工作模式// PA9:TX 复用推挽输出,CNF=10,MODE=11GPIOA->CRH |= GPIO_CRH_MODE9;GPIOA->CRH |= GPIO_CRH_CNF9_1;GPIOA->CRH &= ~GPIO_CRH_CNF9_0;// PA10:RX 浮空输入,CNF=01,MODE=00GPIOA->CRH &= ~GPIO_CRH_MODE10;GPIOA->CRH &= ~GPIO_CRH_CNF10_1;GPIOA->CRH |= GPIO_CRH_CNF10_0;//串口模块设置//设置波特率 115200USART1->BRR = 0x271;//使能串口和收发模块USART1->CR1 |= USART_CR1_UE;USART1->CR1 |= (USART_CR1_TE|USART_CR1_RE);//配置数据帧格式USART1->CR1 &=~ USART_CR1_M;   //长度为8位的数据,没有校验位USART1->CR1 &=~ USART_CR1_PCE;  //无校验,不使用校验位USART1->CR2 &=~ USART_CR2_STOP;  //1位停止位}//发送一个字符
void USART_SendChar(uint8_t ch)
{//判断TDR是否为空,必须等待TDR为空才能写入数据,也就是继续发送while((USART1->SR & USART_SR_TXE)==0){}//将要发送的数据写入TDRUSART1->DR = ch;
}//接收一个字符
uint8_t USART_ReceiveChar(void)
{//判断RDR是否非空。必须有数据才能读取数据while((USART1->SR & USART_SR_RXNE)==0){}//读取接收到的数据,返回return USART1->DR;
}

main.c

#include "usart.h"
#include "delay.h"int main(void)
{//1.初始化USART_Init();//发送单个字符USART_SendChar('A');USART_SendChar('B');USART_SendChar('C');USART_SendChar('\n');while(1){//不停发送字符USART_SendChar('D');USART_SendChar('\n');//延时Delay_ms(500);}}

 

还可以看看接收,接收到我们在软件中发送的,再次发到软件。

这样可能不太明显,如果我们在软件上位机发给stm32一个小写字母,我们32端收到后,将其转化为大写字母,再次发到上位机。因为小写字母与大写字母在ASCII值相差32,所以只要做差即可

 

七、资料

stm32开发官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘

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

相关文章:

  • 重庆网站设计定制seo百度刷排名
  • 做网站书苏州优化外包
  • 刷单网站建设江苏建设人才网查询
  • 可信网站友链怎么做门户网站建设信息工作讲话
  • 代理注册公司协议seo关键词优化软件
  • 哈尔滨 做网站公司有哪些南宁百度seo优化
  • 住房和城乡建设部注册中心网站纯静态网站seo
  • 网站模板二次开发沈阳网站建设推广
  • 免费网站制作平台推荐免费源码资源源码站入口
  • 影视公司网站模板百度推广退款投诉
  • 济南市做网站的公司汕头投资建设总公司网站
  • 嘉兴网站建设网址河源东莞网站建设
  • 企业网站建设费做a视频在线观看网站
  • 制作网页网站搭建服务器教程
  • 抚顺地区网站建设网站建费用
  • 主机搭建网站教程移动微网站建设
  • 成都网站建设加推广公司东阿网站建设产品
  • 怎么提升搜狗网站排名网络编程技术栈
  • 沈阳中联做网站注册网站英语怎么说
  • 网站服务器 英文建设厅网站平顶山
  • 成都网站品牌设计案例打开一个网站
  • 百度基木鱼建站济南高新区 网站建设公司
  • 网站策划书的编写做旅游那些网站好
  • 邹城市住房和建设局网站共享空间网站开发公司
  • aaaa景区网站建设标准托管竞价推广公司
  • 南昌网站设计案例wordpress 编辑
  • 做教育机构的设计哪些网站好网站建设实训报告2000字
  • seo做的不好的网站正规app软件开发报价
  • 代做网站转账截图网站建设毕业设计刻光盘
  • 政务网站开发理念用宝塔做网站步骤