历史上的今天
返回首页

历史上的今天

今天是:2025年06月09日(星期一)

正在发生

2018年06月09日 | STM32缺陷之一:串口中断标志位缺陷

2018-06-09 来源:eefocus

    根据小道消息,M3内核是有缺陷的,但是这种缺陷不会在大会上想广大群众透露的。我用的是M3内核的stm32,我来寻找一些缺陷。


    今天找到的是串口中断标志位缺陷。


    我是做四轴飞行器的,没有买遥控器,而是用的无线串口,一开始的想法是stm32接收到串口来的数据后,进入串口中断服务函数,再比对发来的数据进行接下来的动作。


    一开始的程序是没有问题的,简单点吧,串口接收到数据后,让LED转换状态。   


void USART2_IRQHandler(void)  

{  

  

    if(USART_GetITStatus(USART2, USART_IT_RXNE) ==SET)     

    {   

        USART_ClearFlag (USART2,USART_FLAG_RXNE);        

        LED0=!LED0;  

    }     

}  

    但是串口中断函数和定时器函数优先级不好弄,所以我决定用串口中断查询法,在循环中查询相应的中断标志位。我直接在刚才的程序里更改,结果是错误的。


while(1)  

  

   if(USART_GetITStatus(USART2, USART_IT_RXNE) ==SET)     

{   

    USART_ClearFlag (USART2,USART_FLAG_RXNE);       

    LED0=!LED0;  

}     

纠结了两天,总算查出原因了,如果只用查询法,就不能配置nvic,或者把NVIC_IRQChannelCmd配制成DISABLE。


void U2NVIC_Configuration(void)  

{  

        NVIC_InitTypeDef NVIC_InitStructure;   

        NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;  

        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;  

        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  

        NVIC_InitStructure.NVIC_IRQChannelCmd = DISABLE;  

        NVIC_Init(&NVIC_InitStructure);  

}  

    这个缺陷确实有点。。。其实也无所谓,谁用查询法,还会去配置nvic?可能是我想多了,不过我确实要吐吐槽!


推荐阅读

史海拾趣

Anvo-Systems公司的发展小趣事

Anvo-Systems深知人才是企业发展的核心动力。因此,公司一直注重与高校和研究机构的合作,共同开展电子技术的研发与创新。通过与高校合作开展科研项目、设立奖学金等方式,Anvo-Systems吸引了大批优秀的人才加入公司。同时,公司还建立了完善的培训体系,为员工的职业发展提供了有力支持。这些举措不仅提升了公司的研发实力,也为公司的未来发展储备了丰富的人才资源。

B&B Electronics Manufacturing Company公司的发展小趣事

在国内市场取得一定成绩后,B&B公司开始将目光投向国际市场。通过参加国际电子展会、建立海外销售网络等方式,公司逐渐打开了国际市场的大门。其产品以高品质和可靠性赢得了海外客户的信赖,为公司的进一步发展奠定了坚实的基础。

Elekon Industries公司的发展小趣事

在快速发展的同时,Elekon也积极履行社会责任。公司注重环保和可持续发展,积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。此外,Elekon还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了Elekon的社会责任感,也为公司的长期发展奠定了坚实的基础。

请注意,以上故事均为虚构,旨在为您提供关于Elekon Industries公司发展起来的相关故事。如有需要,请参考公司官方发布的信息或相关新闻报道。

ABI Electronics公司的发展小趣事

随着业务的不断发展和产品的不断升级,ABI Electronics公司的品牌影响力也逐渐提升。其产品在市场上获得了良好的口碑和声誉,成为了电子行业内的知名品牌。同时,ABI还积极参与行业内的交流和合作,为行业的发展做出了积极的贡献,进一步提升了其在行业内的地位和影响力。

这五个故事展示了ABI Electronics公司在电子行业里的发展历程,从电路板测试技术的突破,到集成电路测试技术的创新,再到全球市场布局和合作伙伴关系的建立,以及研发实力的持续增强和品牌影响力的提升,都体现了ABI Electronics公司不断进取、不断创新的精神。

Global Connector Technology公司的发展小趣事
根据电动机和电源系统的要求,检查并调整继电器的参数设置。
DESOUTTER公司的发展小趣事

Desoutter公司成立于1914年,由Desoutter兄弟创立。起初,公司专注于气动工具的研发和生产,很快就以其高质量和可靠性在市场中获得了认可。随着工业革命的深入,气动工具的需求日益增长,Desoutter公司凭借技术优势和市场洞察,逐步扩大了生产规模,奠定了在气动工具领域的领先地位。

问答坊 | AI 解惑

寻求仪表传感器行业有经验工程师进行长期技术合作

各位大虾好,我们寻求仪表传感器行业有经验工程师进行长期技术合作,有意向请发邮件至LUKEBS@126.COM WWW.JUCSAN.CN…

查看全部问答>

程控开关电源

需要的话就下 把   应该可以用得着的阿…

查看全部问答>

滤波电路

正在做一个简单的LC滤波电路,请问大侠们该选用什么样的电容、电感。要求耐压值是1000V…

查看全部问答>

智能电灯小制作

今天在电脑中发现自己曾经用过的资料…

查看全部问答>

请教大侠:2440启动代码中函数ReadImageFromNand读起来有点费劲,能帮忙分析下吗?

具体函数如下: TOC toc; // made global because it\'s too big for our tiny stack DWORD ReadImageFromNand(DWORD dwEntry, DWORD dwSig) {     DWORD dwSectorsNeeded;     DWORD dwSector, dwLength;   &n ...…

查看全部问答>

MC55发送问题,SISW如何保证每次都发送成功?

昨天晚上把写好的程序测试了遍,就是按经典的方法,at^sisw=1,16;收到确认信号后把数据发过去!每1分钟发送一次,心跳包就是计数值累加;发送数据通过tcp server看到是如下情况:其中截取了有问题的一部分 .................. CLIENT->SERVER&nbs ...…

查看全部问答>

关于EVC下 语音识别 的问题 

本人想用EVC 写一个关于语音识别的应用程序, 但是EVC好象不怎么支持speechsdk5.1 语音包, 请问各位大虾我怎么去写这个程序.请赐教!!  …

查看全部问答>

Wince6.0系统PPPoE拨号获取子网掩码错误是怎么回事?

PC机做服务器,wince6.0系统仪表进行PPPoE拨号,获取结果信息打印出来,再用一台PC机PPPoE拨号,获取结果信息也打印出来,比较两者结果,发现获取的IP地址和网关,DNS都是一样的且正确的,子网掩码不一致,Wince6.0系统的是255.255.255.0,PC机获取 ...…

查看全部问答>

秀秀我的开发板

今天回家突然想到SOSO布置给我的任务,但是数码相机没在家,只好用手机拍了一下我在家里的开发板,有空了再把公司的一起拍了传上来这是周立功送的LPC1114,和论坛搞活动的一样,还没来得及玩这是以前买的LPC2148开发板,撒子牌子的都忘了,旁边的是 ...…

查看全部问答>

谁用过ADS1148(1147或者1248)?参考电压死活出不来。。。

最近发现自己的板子上面的AD位数太低了,所以想搞一个好的,结果买了个ADS1148,这玩意用SPI控制,网上也有例程。但是把程序烧下去之后就出问题了,参考电压死活不出来。VREFOUT和VREFCOM脚没有输出的说,之前已经可以正常读写寄存器了,也再MUX1里 ...…

查看全部问答>