历史上的今天
返回首页

历史上的今天

今天是:2024年12月21日(星期六)

2018年12月21日 | 使用stm32CubeMX自动配置的工程文件,进行串口的不定长接收

2018-12-21 来源:eefocus

方法描述:使用stm32CubeMX自动配置的工程文件,进行串口的不定长接收(非DMA方式)。


实际问题解决尝试:


1.HAL库函数只有接收定长数据HAL_UART_Receive()和HAL_UART_Receive_IT();函数声明如下: 


函数声明如下:


通过查看论坛等找到的解决方式,一种是通过HAL_UART_Receive_IT(&huart1,(uint8_t *)buffer,1);来进入串口中断回调函数HAL_UART_RxCpltCallback();函数原型如下: 

 

这里写图片描述 


实际测试中,这种方式每次都需要去调用HAL_UART_Receive_IT函数,系统处理效率低。


2.通过审查生成的代码,如下所示: 首先是串口中断的代码,只有一条语句: 

 

这里写图片描述 


进行go to definition,可以看到接收中断会进入UART_Receive_IT这个函数。 

 

这里写图片描述 


继续往下级看,则可看到下图画线处所示,UART的RXNE中断使能被关闭了。 

 

这里写图片描述 

所以,另一种解决方法是将这一句给屏蔽掉,HAL_UART_Receive_IT只需要执行一次就可以了,类似于打开RXNE中断的操作。但是,这种方法不好的地方在于,如果stm32cubeMX里重新配置并生成代码的话,这个地方的屏蔽会重新打开,也就是说每重新生成一次代码,cube工程不在用户操作区的改动都会被撤回。如果代码只是最终版本,这并无多大关系,如果后续还有其他的功能添加,则会很麻烦。


3.如果cubeMX配置的串口没有开启RXNE中断的话,那我们在初始化处添加试试: 


经过测试,在经过初始化后,程序能够成功DEBUG进入串口中断函数,所以对串口中断里添加我们自己的处理函数即可,本人的处理代码是通过改编原子的串口代码而成,当然你也可以添加自己的处理算法,根据实际问题而定。这种方式即使重新生成工程,所做的处理也不会更改。 


以下是本人实际测试代码: 

 

这里写图片描述 


通过KEIL的DEBUG测试,通过此方法处理的程序,在运行到HAL_UART_IRQHandler函数中时,由于串口ORE位会置位为1, errorflags = (isrflags & (uint32_t)(USART_SR_PE | USART_SR_FE | USART_SR_ORE | USART_SR_NE));相应的不能够为RESET,则UART_Receive_IT函数并未能够进入,所以__HAL_UART_DISABLE_IT(huart, UART_IT_RXNE);这句也就不能够被执行到。 


下图为实际测试效果图: 

 

这里写图片描述


图中时间并不是正确时间,且由图可看出即使间隔10ms发一次数据,串口端都能够对数据进行准确接收方便程序处理。

 

推荐阅读

史海拾趣

Erocore Enterprise Co Ltd公司的发展小趣事

随着全球化趋势的加速,Erocore开始实施国际化战略。公司积极拓展海外市场,通过建立海外生产基地、设立销售办事处等方式,实现产品的全球布局。同时,Erocore也加强了与国际知名企业的合作与交流,引进先进的技术和管理经验,提升公司的整体竞争力。

Design Gateway公司的发展小趣事

随着Gateway业务的不断发展,公司开始寻求更多的市场曝光。1987年,Gateway在《Computer Shopper》杂志上投放了一版独特的广告,吸引了众多消费者的目光。1991年,公司推出了彰显其牧场起家背景的别具一格的奶牛花斑盒状商标,这一创新举措获得了全国消费者的认可,进一步提升了Gateway的品牌知名度和市场地位。

(请注意,由于篇幅限制,以上两个故事为简化版。在实际写作中,可以进一步扩展每个故事,包括更详细的背景信息、人物对话、市场反应等。)

由于篇幅所限,这里只提供了两个故事概要。如果需要更多关于Gateway或其他电子公司的发展故事,可以进一步研究和撰写。

Dearborn Electronics Inc公司的发展小趣事

Dearborn Electronics Inc.注重国际合作与交流,与全球多家知名企业和研究机构建立了紧密的合作关系。通过引进国外先进的技术和管理经验,公司不断提升自身的核心竞争力。同时,公司也积极参与国际市场竞争,拓展海外市场,为未来的发展奠定了坚实的基础。

以上这些故事框架仅供参考,你可以根据这些框架进行深入的调查和研究,撰写出具体、详细的发展故事。

ApexTool Group公司的发展小趣事

Apex Tool Group一直将产品质量视为企业的生命线。在电子行业中,Apex Tool Group的产品以其卓越的品质和稳定的性能赢得了客户的广泛信赖。有一次,一家知名电子企业因为生产线上的电动工具出现故障,导致生产效率大幅下降。在紧急关头,Apex Tool Group迅速提供了替代方案,并派出技术人员现场解决问题。最终,Apex Tool Group的产品成功帮助该企业恢复了正常生产,赢得了客户的赞誉和信赖。

聚辰(Giantec)公司的发展小趣事

在快速发展的同时,港源公司始终不忘履行社会责任。公司秉承绿色环保、节能减排的理念,在生产经营活动中以预防为主、全员参与为行动纲领,防治污染、节废减排。港源公司选用绿色环保RoHS材料,严格管控生产制造过程,确保生产出的产品符合国际环保标准。此外,公司还积极参与社会公益活动,为社会和谐发展贡献自己的力量。

BLACK&DECKER公司的发展小趣事

随着公司的不断发展壮大,BLACK&DECKER开始进军国际市场。1993年,公司在中国成立了第一家工厂,这标志着BLACK&DECKER全球化战略的重要一步。此后,公司通过在全球范围内设立生产基地和销售网络,不断扩大品牌影响力。同时,BLACK&DECKER还通过收购其他知名品牌,如得伟(DeWalt)等,进一步巩固了其在电子行业中的领先地位。

问答坊 | AI 解惑

直流电机PWM调速,C51、Proteus环境

分享一个利用AT89C51产生PWM信号控制直流电机调速的模拟模型。 软件环境:Keil C51,Proteus 已有文件:Keil C51工程文件,C51源文件,Proteus模型。已经产生的hex文件…

查看全部问答>

传感器产业发展的新动向

传感器技术是现代科技的前沿技术,传感器产业也是国内外公认的具有发展前途的高技术产业,它以其技术含量高、经济效益好、渗透能力强、市场前景广等特点为世人瞩目。     我国自动化方面的专家呼吁:目前复杂系统越来越复杂,自动化已经 ...…

查看全部问答>

【Labview】labview学习网站有哪些

大家学习labview都在哪些网站和论坛上混啊?     本人常去的有两个,www.ni.com这是NI的网站,学习labview怎么能不上呢!     其次是www.gsdzone.net 这是我常去的Labview论坛,里面有资深NI工程师潜伏哦!…

查看全部问答>

WHY???

在下面代码中发现产生INTSRC_CAM中断后若BIT_SUB_CAM_P和BIT_SUB_CAM_C都没触发 那就执行 “//有疑问的代码”标记的代码 即屏蔽掉了Camera所有中断并返回了SYSINTR_NOP 这样相应的IST得不到执行也就不会调用InterruptDone来打开屏蔽的中断那以后 ...…

查看全部问答>

PB定制wince系统黑屏

本人初学wince编程,想用Platform Builder搭建一个平台,于是照着一篇文章的介绍一步一步的做下来,到最后仿真器终端出现了,可是却没有图形界面,窗口上方有Emulator和Help的菜单,下来就是一片黑屏了。请高手指教一下问题可能出现再哪? …

查看全部问答>

请教版主,stm32的抗静电等级与潮敏是多少?

您好,版主! 我想请教下stm32的抗静电等级与潮敏各是多少呢? 静电等级:J8000 J5000 J2000 J1000 J500 J200 是那个级别的 是j2000吗? 潮敏:C1 C2 C3 C4 C5是那个级别的呢?…

查看全部问答>

霍尔传感器模块

先给个实物图(只一次发不知道怎么把图放在帖子中所以就放在附件中了) 这是网上找的一个程序,按道理说应该可以控制: 但是我用电压表测出来的输出信号只有几十毫安,并且在磁铁周期运动时变化之久几毫安?请问谁能解决这个问题? /*********** ...…

查看全部问答>

2013年电子设计大赛是不是9月7号晚上结束后就不能在做了

本帖最后由 paulhyde 于 2014-9-15 03:13 编辑 同题目    …

查看全部问答>

这里有----Multisim电子电路仿真教程

想学习模电的同学,也可以试试仿真软件哦,,这里有Multisim电子电路仿真教程,但动手还是主要的,,,,, 通过对该软件的学习和使用,读者可以轻松地拥有一个元件设备非常完善的虚拟电子实验室,进而可以完成电子电路的各种实验和设计。全书共9章 ...…

查看全部问答>

RIoTboard相关资料下载分享

以下是RIoTboard开发板相关的资料下载,分享一下,希望对大家有帮助。 ·        RIoTboard用户手册_中文:dl.vmall.com/c09taytfdw·        RIoTboard 原理图:dl.vmall.com/c0mvw ...…

查看全部问答>