历史上的今天
返回首页

历史上的今天

今天是:2024年09月05日(星期四)

正在发生

2019年09月05日 | stm32中断无电平触发的解决办法

2019-09-05 来源:eefocus

  这几天在用stm32读取FPGA中FIFO里的数据,遇到了不少的问题。这里就其中的一个问题写写,比较简单,就当做是打发一下时间。


  问题就是,stm32的中断没有电平触发方式。stm32读取FIFO中的数据,当FIFO数据非空时给stm32中断信号——将对应的中断线拉高/低,这时stm32取FIFO中数据直至读完,FIFO将中断线电平拉低/高。然后当FIFO中又有数据时,在次发出中断信号,如此循环。


  结合图说。这里简单看看FIFO的结构,如图一所示。当FIFO数据非空,给stm32信号,比如将wr_full这个引脚拉高/低。然后就让这个信号触发stm32进入中断函数中去读数据,直到stm32将数据读出后拉低/高。读取时序如图二。这样就需要将中断设置成电平触发,只要低就一直重复进中断函数里读数据。但就像前面说到的stm32不能将中断设置成电平触发的方式。   

                                                    rd_clock:时钟信号             wr_full:半满信号                                                              rd_en:     使能信号             tx_data: 数据信号


图一

图二  


  怎么解决呢?我的做法是这样的。如图三所示: 在箭头1处,用while循环,里面的判断条件是读取的中断输入引脚(我设置为GPIOE_Pin4)的值,如果这个引脚的值是1的话,就继续读数据。如果值为0的话就退出while循环,清中断(箭头2处),再退出中断函数。

图三


  好了,这样就解决了我的问题。下面可以开始验证了。如图四所示,是为验证编写的主函数,很简单,就不说了。按照预期,应该出现的现象是:程序下载后,stm32的LED闪烁,代表程序程序运行正常。然后让FPGA给里面的FIFO写数据,半满后给出中断信号。串口调试助手可以看到,当半满信号给出被拉高后,串口调试助手中显示出事先写入FIFO中的数据,此时LED停止闪烁。半满信号拉低后,无数据显示,LED灯开始闪烁。下面,我就把程序下进去观察一下。

图四


  从图五里可以可以看到,读出了数据,而且就是事先写入FIFO里的数据。另外,LED灯在串口调试助手printf出数据时,停止闪烁。数据printf完后,有开始闪。和预期一样    

图五


  好了。内容就这些了。第一次写,写的不怎么样,内容也比较简单。其实,实验室学长才是这次任务的主角,主要的工作是他做的,我只是打下手

推荐阅读

史海拾趣

Advanced Thermal Solutions公司的发展小趣事

为了进一步扩大市场份额,ATS开始实施全球化战略。公司先后在北美、欧洲和亚洲等地设立了分公司或办事处,以便更好地服务全球客户。同时,ATS还积极参与国际展览和交流活动,与全球各地的合作伙伴建立紧密的合作关系。这些举措使ATS的产品和服务得以覆盖更广泛的地域,公司的知名度和影响力也不断提升。

Bay Linear Inc公司的发展小趣事

在电子行业的早期,Bay Linear Inc公司以其精湛的技术和前瞻性的视野,成功研发出了一款高效能、低能耗的线性电源管理芯片。这款产品凭借出色的性能,迅速获得了市场的认可,为公司在行业内赢得了良好的声誉。随着技术的不断进步,公司又陆续推出了多款创新产品,不断巩固和扩大市场份额。

Atmel (Microchip)公司的发展小趣事

2016年,Atmel被美国芯片制造商Microchip以35.6亿美元收购。这一收购事件标志着Atmel发展史上的一个重要转折点。在被收购后,Atmel成为了Microchip的一部分,继续发挥其在微控制器领域的优势,同时也获得了Microchip在技术支持、市场渠道等方面的强大支持。这使得Atmel能够更快地推出新产品、拓展新市场,进一步巩固其市场地位。

CONEC公司的发展小趣事

在电子行业中,技术的突破和创新是企业持续发展的关键。CONEC深知这一点,因此不断投入研发资源,力求在技术上取得突破。通过多年的努力,公司在某些关键技术领域取得了重要进展,如高速数据传输、低损耗材料应用等。这些技术突破不仅提升了公司的产品性能和质量,也使其在行业中保持了领先地位。

Display Elektronik GmbH公司的发展小趣事

Display Elektronik GmbH公司自创立之初,就致力于显示技术的研发与创新。在21世纪初,公司推出了一款采用全新显示技术的液晶显示屏,其高分辨率、低功耗和长寿命的特点迅速赢得了市场的认可。随着技术的不断迭代,Display Elektronik GmbH逐步确立了在显示技术领域的领先地位。

GTK UK Ltd公司的发展小趣事
通过增加滤波电路、采用屏蔽措施等方式来减少环境干扰对电路的影响。

问答坊 | AI 解惑

08年通信业投资策略:TD待放走向国际

2007年国内通信行业整体并未处于高速上升的周期中,但板块内龙头企业的业绩稳固提升,依靠着海外收入规模的不断扩大,享受到了全球通信行业的景气上升。   2008年将是TD商用元年,规模建设也将拉 开序幕,行业中诸多不确定因素也将找到答案 ...…

查看全部问答>

大家都用什么型号的单片机?

我想用单片机做点东西,不知道用什么型号的单片机?有人说AT89C51淘汰了,真的吗?…

查看全部问答>

历届全国大学生电子竞赛试题汇总

本帖最后由 paulhyde 于 2014-9-15 09:23 编辑 历届全国大学生电子竞赛试题汇总  …

查看全部问答>

食人鱼LED的封装

replyreload += \',\' + 369679;     可以把LED的芯片封装成图 所示的食人鱼形状,这种LED很受用户的欢迎。为什么把这种LED称为食人鱼呢?因为它的形状很像亚马孙河中的食人鱼。用食人鱼来命名LED发光器件的一种产品,也是从 ...…

查看全部问答>

求教ucos的移植问题

要用gcc编译,在x86平台上。。。 本人菜鸟,谁能给一个详细的说明啊。。。。 谢谢。…

查看全部问答>

wince usb packet

请教怎样用usb packet sensing 来判断USB 是不是USB CABLE插入的。 usb 传输是开始传的数据包是怎样的,在USB driver 在哪里去找啊,谢谢~~!!! usb 2.0…

查看全部问答>

ST的置换活动

http://www.stmicroelectronics.com.cn/activity/stm32_2010/stm32_2010.html   手头有块 STM3210B-LK1  现在联系置换不知道有没有机会 明天28号了 有点晚知道 了…

查看全部问答>

双DMA实现I2S播放SD卡中音乐

 本文讨论SD卡作为存储器,I2S播放音频的解决方案SD卡数据的读取虽然很快,即使在最理想的状态下,播放一秒钟的数据,需要大约%4的时间消耗8(bit)x2(ch)x2(byte)x48000(hz)/36(MHz)=0.042s使用单流程模式,这部分损耗是无法忽略的,只能考 ...…

查看全部问答>

请问avr编程时时钟怎么设置

看过相关文档。说是通过熔丝位、CKSEL熔丝位SUT设置。但是在iom16.h里并没有定义该寄存器。可能我没有理解对,刚接触avr,请高手指点!!…

查看全部问答>

【好书推荐】C语言实例解析精粹

中文名:C语言实例解析精粹 作者:曹衍龙 / 林瑞仲 / 徐慧 图书分类:软件 资源格式:PDF 版本:扫描版 出版社:人民邮电出版社 书号:I S B N:9787115163073 发行时间:2007年8月1日 地区:大陆 语言:简体中文简介: 内容简介 本书主要讲解C ...…

查看全部问答>