HAL库这三种操作方式掌握了,HAL就不难了! 单片机开发

HAL库这三种操作方式掌握了,HAL就不难了! 单片机开发HAL 库三种操作方式 掌握这三种 HAL 库的操作方式 HAL 库对你来说几乎就没有什么难度了 1 首先是哪三种方式 第一种是阻塞模式下的轮询方式 什么是阻塞 后面再说 2 第二种和第三种是两种非阻塞模式 第二种是中断 第三种是 DM

大家好,欢迎来到IT知识分享网。

HAL 库三种操作方式。

掌握这三种 HAL 库的操作方式,HAL 库对你来说几乎就没有什么难度了。

1. 首先是哪三种方式?第一种是阻塞模式下的轮询方式。什么是阻塞?后面再说。

2. 第二种和第三种是两种非阻塞模式,第二种是中断,第三种是 DMA。

HAL库这三种操作方式掌握了,HAL就不难了! 单片机开发

3. 来说一说阻塞。所谓的阻塞就是 CPU 一直等在你这里完成这个任务,其它的什么也不干。对应的非阻塞模式肯定就是它执行了一次这个动作,不用等着你完成就可以去忙别的了,因为有中断还有 DMA。

HAL库这三种操作方式掌握了,HAL就不难了! 单片机开发

4. 举个具体例子,这是 HAL 库的还有库,以接收为例,接收有一个函数,这个是轮询模式,还有 DMA,DMA 给的参数无非是聚饼、缓冲区、接收的自结数还有一个超时。因为是轮询模式,要有超时来保障不会死在这个函数里。

5. 至于中断模式是用这个函数,大家看有什么特点?发现 DMA 后面跟了一个 DMA,就是使用中段模式的特点。同样给的参数和组色模式差不多了,距离、缓冲区还有接收的字节数。DMA 就需要有一个对应的中段回调函数。注意不是直接去中段服务函数里面写代码,而是要擅长利用中段回调函数调动是哪个中段回调函数?叫 has completed call back。注意这边是一个若函数形式,库里的若函数什么也没干,这就表示如果不写函数到这也会到这来转一圈。当然用户既然接收这么多数据不会什么也不操作,所以大家把这个函数复制到用户的代码区,然后去把内容按需要的逻辑处理一下就好。这是接收中断的回调函数。

6. 再看一看 HAL 模式,看 HAL 后面明显的 DMA,DMA 就是这边使用 HAL 模式的接口函数,它的参数和 DMA 是一样的,同样也会触发中段回调函数。但是因为 DMA 完成一半的传输也会产生中段,所以它的回调函数有两个可以使用。

HAL库这三种操作方式掌握了,HAL就不难了! 单片机开发

– 第一个是完成了一半 DMA 的时候,也就这边有一个 rx half complete,就是 DMA 完成了一半,可以允许用户处理一些逻辑事件。

– 当然最终完成肯定也是会有这个函数的对不对?这个回调函数大家看一下是不是和中段的一模一样?没错,中段以及 DMA 全部完成的回调函数是一个就简。

HAL库这三种操作方式掌握了,HAL就不难了! 单片机开发

7. 关于 HAL 库还要强调一个是如果使用的是非阻塞模式调用的一种方式,每次完成以后非阻塞的这种方式不管是中断还是 DMA 都会被制成无效状态,就是调用一次仅限于这一次使用,这也是符合 HAL 库的设计理念的,意味着如果还想使用中断接收就必须再调用一次 receive_it。

小伙伴们,你们都掌握了吗?

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/166024.html

(0)
上一篇 2025-01-03 14:45
下一篇 2025-01-03 15:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信