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

青岛做门户网站的南宁整合推广公司

青岛做门户网站的,南宁整合推广公司,个人电脑做网站服务器网站,国家企业信用公示系统官网查询Q:为什么使用串口前要先在电脑上安装CH340驱动? 中断的作用? 环形buffer的作用? static和valitate的作用 三种编程方式简介 也可以通过DMA方式减小CPU资源的消耗 直接把数据在SRAM内存和UART模块进行传输 ,流程: …

Q:为什么使用串口前要先在电脑上安装CH340驱动?

中断的作用?

环形buffer的作用?

static和valitate的作用

三种编程方式简介

 

也可以通过DMA方式减小CPU资源的消耗

直接把数据在SRAM内存和UART模块进行传输 ,流程:

  • 把数据在DMA中配置好
  • 数据传输
  • 产生中断,CPU介入

编程方式改进 

1、查询方式对应的读写会存在时间延迟

比如接收:没来得及保存RDR寄存器中接受到的数据时,RDR寄存器的值就已经被覆盖;

2、中断方式:事先在发送buffer中存好数据,使能发送空中断;把接受的数据存入buffer

发送

  • char tx_buf[100];存数据
  • enable TXE
  • TXE_ISR:中断来取出数据发给TDR

接收

  • 使能RXNE(接收非空)
  • RXNE_ISR:利用中断从RDR中取数据到缓冲区

3、用环形缓冲区改进中断

4、用DMA方式减小CPU资源的消耗

一、查询方式进行编程 

核心:判断TDR和RDR寄存器的状态

缺点:当接收时,若没有来得及读取数据,RDR中的值容易被覆盖,进而丢失数据

实现:

  • 发送:先判断发送寄存器是否为空(借助状态寄存器中的TXE),若为空,往里面(DR)写入数据,自己的存储器地址++(pdata16bits++)
  • 接收:判断RXNE是否收到数据(非空RXNE),若非空,读取DR,存进自己的存储器

 

二、官方中断方式进行编程 

while(1){

调用HAL_UART_Transmit_IT使能中断(中断处理进行接收)14

等待中断处理(接收)完毕

打印1(23)

}

核心:通过使能中断,有字节就会

缺点:必须有函数及时调用HAL_UART_Transmit_IT,若未及时调用,数据也会丢失,实际场景中不会使用。。。。。所以HAL_UART_Transmit_IT没有什么作用

步骤:cubeMX,选择UART1串口,使能中断

代码逻辑:初始化串口时,同样使能了中断和设置了中断的优先级;在中断文档中,增加了串口1 的中断处理函数。(但只是使能串口1的中断总开关,没使能发送或接收中断,中断的管理还需要自己实现)

代码实现:

  • 调用HAL_UART_Transmit_IT函数,使能中断UART_IT_TXE,使能后就返回,并不处理数据(中断UART_IT_TXE,把数据发给寄存器)
  • 在中断处理函数中,若发送1000字节,则启动999次TXE中断和1次TC中断(调用HAL_UART_TxCpltCallback)

在接收时,因打印比较耗时,若每及时的调用HAL_UART_Transmit_IT函数使能中断,数据仍然会丢失

要发送数据时,使能“TXE”中断(发送寄存器空中断)。在 TXE 中断处理函数里,从程序的发送 buffer 里取出一个数据,写入 TDR;(TDR为空时:buffer---TDR---移位寄存器

对于接收数据,在一开始就使能“RXNE”中断(接收寄存器非空)。这样,UART 接收到一个数据就会触发中断,在中断程序里读取 RDR 得到数据,存入程序的接收 buffer。(RDR非空时:移位寄存器---RDR---buffer

和查询相比:多了对事件的实时相应

TXE中断:TDR中的数据放入移位寄存器

TC中断:移位寄存器中的数据全部发送出去

二、中断方式改造

使能接收中断

初始化缓冲区

while(1){

HAL_UART_Transmit_IT;

circle_buf_read(&g_uart1_rx_bufs, pVal);

等待数据传输完毕;

}

不太懂!!!!

① 一开始就使能接收中断
② 接收中断处理函数里,把数据存入环形 buffer,并再次使能接收中断

三、DMA方式进行编程 

优点:在数据传输的过程中不使用CPU的资源 

配置DMA,进而实现在UART串口的TDR,RDR寄存器芯片内存SRAM之间的直接数据传输。

当指定目标数量的数据传输完成后才会产生中断,进而让CPU介入。

http://www.ds6.com.cn/news/113788.html

相关文章:

  • 新老网站做301跳转2345网址导航是什么浏览器
  • 免费手机网站制作app西地那非片说明书
  • 知名的中文域名网站seo管理
  • 网站的结构类型深圳seo优化服务商
  • 做网站资源存储哪些网站可以免费发广告
  • 编程 毕业设计代做网站潍坊关键词优化排名
  • 湖南做网站 e磐石网络网站管理和维护的主要工作有哪些
  • 武汉制作网站公司哪家好上街网络推广
  • 南京溧水城市建设集团网站seo手机关键词排行推广
  • 科技企业网站如何建设网站换了域名怎么查
  • 唐山市住房城乡建设局网站惠州疫情最新情况
  • 网站制作人员千瓜数据
  • 网站建设违约优秀网站网页设计
  • 潮州seo长沙seo
  • 网站建设教程金旭亮上海seo优化bwyseo
  • 赌博网站怎么搭建代运营靠谱吗
  • vps网站如何绑定多个域名合肥网络公司seo建站
  • 开发网站开票写什么百度seo排名软件
  • 做网站是如何实施的投放广告的渠道有哪些
  • 怎样选深圳网站建设广州seo网络营销培训
  • 天津做网站的哪家好seo关键词有话要多少钱
  • 旅游网站开发注意点关键词挖掘爱网站
  • 网站用的横幅广告怎么做网站制作推广电话
  • 香港域名可以用在内地吗上海搜索排名优化
  • 重庆制作网站公司线上销售方案
  • 有的域名怎样做网站外包网络推广
  • 品牌做网站还是app网络营销策划案怎么写
  • 油漆企业网站要怎么做网站营销方案模板
  • 网站代码管理seo搜索推广费用多少
  • 广东佛山网站建设联赛积分榜排名