ST的串口HAL库太难用了,顶钢盔吐槽。F105RC

2019-12-10 18:28发布

本帖最后由 liuqian 于 2019-5-2 11:59 编辑

1. 层层包裹,里面各种情况都要处理,太啰嗦了,效率太低了
2. 发送、接收共用一个锁,全双工怎么玩,肯定会发生碰撞
3. 因为我使用了4个串口,有带DMA的有不带DMA的,为了方便维护,就不用DMA,而使用中断。但是串口中断接收使用定长缓存,而不是环形,这对不定长数据接收很麻烦。为了尽量不动CUBEMX生成的程序,费了不少功夫,最后还是写了自己的中断处理+环形缓冲。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
52条回答
liuqian
1楼-- · 2019-12-14 14:42
跟atmel的asf相比,st的hal简直是一坨屎。初始化完了,后面就没它的事了,全都自己写寄存器了。还好这么多年积累了不少模块,稍微改改也就能用了。hal感觉学一个学了软件工程的学生为了体现软件封装做的毕业设计。
gliet_su
2楼-- · 2019-12-14 17:30
这种库都是装B用的,还是以前底层库好用,库函数直接操作寄存器,简单明了。一般都是库函数初始化一下就完了,收发函数自己写,想怎么控就怎么控。
flash3g
3楼-- · 2019-12-14 20:13
 精彩回答 2  元偷偷看……
大傻师
4楼-- · 2019-12-15 00:50
flash3g 发表于 2019-5-4 23:50
HAL库不好玩,不过STM32CubeMX拿来测试板子不错。

HAL库没有出问题还好,出问题就呵呵了。

HAL问题确实多。
我感觉HAL的目标是兼容STM32全系列,然而各个系列差别确实有点大,导致负担有点重。
LL库相对好点
whxiaowang
5楼-- · 2019-12-15 05:52
用ll库初始化就行了,其它自己来
cqfeiyu
6楼-- · 2019-12-15 09:29
要把错误关掉,不然很容易出错

一周热门 更多>