nvnv-sunny 发表于 2025-6-1 11:35:22

DMA硬件iic驱动oled是否可以不需要中断?

各位大神,请教下STC32G DMA硬件iic驱动oled是否可以不需要中断?论坛所提供的案例代码中是使用DMA中断的,但是STC32G12K128-LQFP64-DIP64-DEMO-CODE-20231007包里的30-STC32_U8G2_DMA_OLED案例,我搜索了代码并没有找到DMA中断。所以请各位大神解疑,谢谢!

国芯人工智能 发表于 2025-6-1 11:48:00

在STC32G12K系列(如30-STC32U8G2DMAOLED)中,使用中断可以帮助驱动更高效地管理系统资源,尤其是在处理屏幕加载和显示区域变化时。然而,驱动的中断设置通常与中断的实现方式有关,而中断的中断数通常为0(即不使用中断)。

建议:

1. 检查中断设置:在驱动脚本中,确保中断设置为0(即不使用中断)。如果中断设置为非零,可能会影响驱动的兼容性。

2. 确保兼容性:如果中断的实现方式与驱动版本不符,可能需要修改中断设置或删除中断。建议参考驱动文档,了解中断的具体实现方式。

3. 参考驱动文档:查阅STC32G12K系列的驱动文档,了解中断的使用方法和注意事项,以确保驱动的兼容性。

4. 联系技术支持:如果在使用过程中遇到问题,可以联系STC芯片制造商或技术支持团队,获取进一步的帮助。

总之,使用中断可以提高驱动的效率,但需要确保中断的实现方式与驱动版本兼容。如果中断设置为0,驱动通常会使用中断,以处理系统事件。

[本文内容由国芯人工智能辅助生成,仅供参考]

ercircle 发表于 2025-6-1 12:15:42

没用中断,使用的查询模式。



另外要改中断模式的话,记得删除ISR.asm里的中断跳转,这应该是从8bit移植过来的。

nvnv-sunny 发表于 2025-6-1 12:22:52

ercircle 发表于 2025-6-1 12:15
没用中断,使用的查询模式。




谢谢回复,这里我已经发现了,但是我试过将没有中断的代码复制到有中断的程序里,并且删除所有中断代码,包括ISR,都无法正常驱动屏幕。

ercircle 发表于 2025-6-1 12:28:19

nvnv-sunny 发表于 2025-6-1 12:22
谢谢回复,这里我已经发现了,但是我试过将没有中断的代码复制到有中断的程序里,并且删除所有中断代码, ...

直接使用此例程是否可点亮?
通讯类问题一般逻辑分析仪抓下波形定位问题方便。

nvnv-sunny 发表于 2025-6-1 12:33:51

ercircle 发表于 2025-6-1 12:28
直接使用此例程是否可点亮?
通讯类问题一般逻辑分析仪抓下波形定位问题方便。 ...

两个项目单独直接编译都是可以点亮没问题的,所以很奇怪,不确定哪里有问题

nvnv-sunny 发表于 2025-6-1 12:35:30

因为我发现使用中断的案例,只要提高iic速度会导致屏幕出现随机闪烁,但是u8g2那个没中断的似乎没闪烁问题

ercircle 发表于 2025-6-1 12:37:23

nvnv-sunny 发表于 2025-6-1 12:33
两个项目单独直接编译都是可以点亮没问题的,所以很奇怪,不确定哪里有问题 ...

反向移植,拷贝一份例程,逐步把你代码拷贝过来看看哪个函数影响的

nvnv-sunny 发表于 2025-6-1 14:05:58

ercircle 发表于 2025-6-1 12:37
反向移植,拷贝一份例程,逐步把你代码拷贝过来看看哪个函数影响的

只能这样试试了,非常感谢
页: [1]
查看完整版本: DMA硬件iic驱动oled是否可以不需要中断?