OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8243|回复: 29

HAL库有毒。。。个别地方慎用

[复制链接]

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
发表于 2018-3-12 10:55:19 | 显示全部楼层 |阅读模式
最近做个功能,主要用到了串口、定时器、DAC ,上了freertos

发现运行一段时间串口就不响应了,看寄存器,串口中断莫名被禁用

调试一段时间,改了各种配置,最后抛弃回调,抛弃库函数,直接上寄存器直接处理中断,异常情况没了。。。

猜测是定时器频繁中断(频率:262144),导致HAL库没处理过来

综上,如果在紧张的资源下,还是别调用HAL库函数,直接操作寄存器吧。。。


学无止境
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

406

帖子

0

精华

高级会员

Rank: 4

积分
795
金钱
795
注册时间
2015-3-26
在线时间
151 小时
发表于 2018-3-23 08:50:52 | 显示全部楼层
回复 支持 1 反对 0

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3722
金钱
3722
注册时间
2011-5-23
在线时间
2013 小时
发表于 2018-3-12 11:09:53 | 显示全部楼层
26K中断,本身这设计就不是很合理了吧?
有没办法降低中断频率?或把这个中断做成不可屏蔽的。
另外测算这个中断的最大耗时,确认CPU的处理能力是足够的。
RT-Thread RTOS 音频,WIFI,蓝牙
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
 楼主| 发表于 2018-3-12 11:34:18 | 显示全部楼层
aozima 发表于 2018-3-12 11:09
26K中断,本身这设计就不是很合理了吧?
有没办法降低中断频率?或把这个中断做成不可屏蔽的。
另外测算 ...

控制累加器输出波形频率,综合考虑还是用的这个频率
学无止境
回复 支持 反对

使用道具 举报

0

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
582
金钱
582
注册时间
2017-6-2
在线时间
192 小时
发表于 2018-3-12 12:41:19 | 显示全部楼层
HAL库本来就是牺牲硬件成本,来换取开发成本的一种方式,当然不适合极限性能下的使用
回复 支持 反对

使用道具 举报

24

主题

695

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1666
金钱
1666
注册时间
2016-4-29
在线时间
266 小时
发表于 2018-3-12 12:47:12 | 显示全部楼层
中断程序全部采用寄存器操作
回复 支持 反对

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
12025
金钱
12025
注册时间
2013-3-8
在线时间
1280 小时
发表于 2018-3-12 12:48:09 | 显示全部楼层
用PWM模式,或FPGA不更好吗?单片机这么高的中断频率是不合理的!
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
 楼主| 发表于 2018-3-12 12:55:28 | 显示全部楼层
augustedward 发表于 2018-3-12 12:48
用PWM模式,或FPGA不更好吗?单片机这么高的中断频率是不合理的!

要对波形调幅的,FPGA这方面不会。。。
学无止境
回复 支持 反对

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
12025
金钱
12025
注册时间
2013-3-8
在线时间
1280 小时
发表于 2018-3-12 13:06:26 | 显示全部楼层
jermy_z 发表于 2018-3-12 12:55
要对波形调幅的,FPGA这方面不会。。。

FPGA加DA不就可以了。用定时器调幅?
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
 楼主| 发表于 2018-3-12 13:09:31 | 显示全部楼层
augustedward 发表于 2018-3-12 13:06
FPGA加DA不就可以了。用定时器调幅?

dds有了解不,定时器累加,进行取点DAC输出
学无止境
回复 支持 反对

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
12025
金钱
12025
注册时间
2013-3-8
在线时间
1280 小时
发表于 2018-3-12 14:14:32 | 显示全部楼层
jermy_z 发表于 2018-3-12 13:09
dds有了解不,定时器累加,进行取点DAC输出

那可以直接用FPGA,在RAM里把数据表加进去就可以了,可以实现频率可调,波形可变(根据RAM内容变),相位可调,幅值可调,用一片FPGA就可以搞定。
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
 楼主| 发表于 2018-3-12 14:16:53 | 显示全部楼层
augustedward 发表于 2018-3-12 14:14
那可以直接用FPGA,在RAM里把数据表加进去就可以了,可以实现频率可调,波形可变(根据RAM内容变),相位 ...

关键是不懂FPGA啊。。。上面已经讲了
学无止境
回复 支持 反对

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
12025
金钱
12025
注册时间
2013-3-8
在线时间
1280 小时
发表于 2018-3-12 14:19:22 | 显示全部楼层
jermy_z 发表于 2018-3-12 14:16
关键是不懂FPGA啊。。。上面已经讲了

那用单片机是有点麻烦了。频率不能太高,否则很容易出问题。数电只要好,学习FPGA用于DDS,半个月就可以搞定。
回复 支持 反对

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2018-3-12 14:59:14 | 显示全部楼层
HAL库在效率上确实太蛋疼了,最基本的串口中断接收,如果用HAL库的话速度一快就反应不过来了。
回复 支持 反对

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
12537
金钱
12537
注册时间
2015-11-5
在线时间
2146 小时
发表于 2018-3-13 16:53:06 | 显示全部楼层
HAL库的串口驱动确实有问题,我没上OS,用原子的串口代码跑,在收发比较频发时很容易出现串口接收被关闭的现象
回复 支持 反对

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2018-3-13 17:01:45 | 显示全部楼层
本帖最后由 mygod 于 2018-3-13 17:22 编辑

STM32F103,50K 中断频率,没有用HAL库
1-1
回复 支持 反对

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 2018-3-13 19:23:04 | 显示全部楼层
mygod 发表于 2018-3-13 17:01
STM32F103,50K 中断频率,没有用HAL库

262144=262kHz,STM32高速中断会出现奇怪问题,使用CPLD构建DDS信号发生器是比较合理的,不过使用DMA降低中断频率,之前我调试IIS中断频率71K*4+71K,代码非常不稳定,后面使用DMA把中断频率干下来,就正常了。有些芯片自动DDS功能
让我们的思维驾驭在电的速度之上!
回复 支持 反对

使用道具 举报

0

主题

88

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2016-11-1
在线时间
119 小时
发表于 2018-3-13 19:47:44 | 显示全部楼层
FreeRTOS 发表于 2018-3-13 16:53
HAL库的串口驱动确实有问题,我没上OS,用原子的串口代码跑,在收发比较频发时很容易出现串口接收被关闭的 ...

不是HAL库的驱动有问题,是原子的用法有问题
回复 支持 反对

使用道具 举报

8

主题

569

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2363
金钱
2363
注册时间
2015-5-8
在线时间
320 小时
发表于 2018-3-13 21:27:18 | 显示全部楼层
HAL库加freertos才是问题多多
回复 支持 反对

使用道具 举报

8

主题

569

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2363
金钱
2363
注册时间
2015-5-8
在线时间
320 小时
发表于 2018-3-13 21:29:19 | 显示全部楼层
不过现在工作基本已经寄存器或者HAL库了
回复 支持 反对

使用道具 举报

1

主题

58

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1161
金钱
1161
注册时间
2018-3-8
在线时间
191 小时
发表于 2018-3-20 14:05:45 | 显示全部楼层
准备用HAL库呢,先听听大家的意见
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
 楼主| 发表于 2018-3-20 16:18:54 | 显示全部楼层
hellowSTM32 发表于 2018-3-20 14:05
准备用HAL库呢,先听听大家的意见

其它位置可以用HAL库,中断就不要用了
学无止境
回复 支持 反对

使用道具 举报

15

主题

406

帖子

0

精华

高级会员

Rank: 4

积分
795
金钱
795
注册时间
2015-3-26
在线时间
151 小时
发表于 2018-3-20 16:53:20 | 显示全部楼层
你打开方式不对,我用着好好的
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
 楼主| 发表于 2018-3-20 17:26:03 | 显示全部楼层
xyl210xyl 发表于 2018-3-20 16:53
你打开方式不对,我用着好好的

你按照我的条件,你去用看看,没问题再来回答!
学无止境
回复 支持 反对

使用道具 举报

15

主题

406

帖子

0

精华

高级会员

Rank: 4

积分
795
金钱
795
注册时间
2015-3-26
在线时间
151 小时
发表于 2018-3-22 10:07:42 | 显示全部楼层
jermy_z 发表于 2018-3-20 17:26
你按照我的条件,你去用看看,没问题再来回答!

我擦你还不让我回答了,哪怕是坨屎我也拉在这里了,瞧你那骄傲样,出来提问还那么拽,继续装B
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
 楼主| 发表于 2018-3-22 10:08:48 | 显示全部楼层
xyl210xyl 发表于 2018-3-22 10:07
我擦你还不让我回答了,哪怕是坨屎我也拉在这里了,瞧你那骄傲样,出来提问还那么拽,继续装B

傻逼一样
学无止境
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1919
金钱
1919
注册时间
2016-2-20
在线时间
258 小时
发表于 2018-3-23 13:19:00 | 显示全部楼层
说好的毒呢。。。。。。
不见了???
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2017-11-27
在线时间
1 小时
发表于 2018-3-23 13:19:45 | 显示全部楼层
6666666
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2017-11-27
在线时间
1 小时
发表于 2018-3-23 13:19:58 | 显示全部楼层
6666666666
回复 支持 反对

使用道具 举报

23

主题

323

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-11-8
在线时间
233 小时
发表于 2018-3-23 13:23:00 | 显示全部楼层

看你俩吵架突然笑出声
亦余心之所善,
虽九死其犹未悔。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 05:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表