历史上的今天
返回首页

历史上的今天

今天是:2025年03月25日(星期二)

正在发生

2019年03月25日 | 解决CUBEMX配置生成的UART无法进入中断的问题

2019-03-25 来源:eefocus

最近使用STM32F107在进行开发,用CUBEMX配置UART作为串口和上位机通讯,然而一直无法接收到数据,调试了一个上午,硬件检查过,包括重写RX回调函数都试过了,但就是无法正常接收数据。


之后找了一个重写回调的函数,移植程序结构,编译执行发现在执行其中的  HAL_UART_Receive_IT  这一函数后,会能接收一次中断发出的数据(也就是复位后能进入一次中断),怀疑是因为HAL的bug或者cubemx生成代码有bug!进入该函数内部,最后筛选出两条代码添加在主函数循环前,以及中断处理函数末尾,串口就能正常进入中断了。


这两句为:


__HAL_UART_ENABLE_IT(&huart4, UART_IT_ERR)


__HAL_UART_ENABLE_IT(&huart4,UART_IT_RXNE)


可以看主要只是第二参数变化,这一宏定义函数主要功能是将中断控制寄存器置参数二的位置,也就是重置了ERR和RXNE标志位


中断处理函数的参考代码:


void UART4_IRQHandler(void)

{

char aRxBuffer[1];

 

  HAL_UART_Transmit(&huart4,"Hello,Enter Interrupt\r\n",26,0xFFFF);

 

  HAL_UART_IRQHandler(&huart4);

 

    /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */

    __HAL_UART_ENABLE_IT(&huart4, UART_IT_ERR);

 

    /* Enable the UART Data Register not empty Interrupt */

    __HAL_UART_ENABLE_IT(&huart4, UART_IT_RXNE);

 

 

}

推荐阅读

史海拾趣

ALTERA(阿尔特拉)公司的发展小趣事

阿尔特拉(Altera Corporation)是一家以可编程逻辑器件(FPGA)和相关技术为主的半导体公司,成立于1983年,总部位于美国加利福尼亚州的圣塔克拉拉。以下是关于阿尔特拉公司发展的五个相关故事:

  1. 创立与早期发展:阿尔特拉公司由Robert Hartmann和Michael Magranet等人于1983年创立,最初致力于设计和制造电可擦除可编程只读存储器(EEPROM)。1984年,公司推出了业界第一个商用FPGA产品,即EP300系列,标志着阿尔特拉在FPGA领域的开创性突破。随后,公司不断扩大产品线,加大研发投入,逐步成为FPGA领域的领军企业之一。

  2. FPGA技术创新:阿尔特拉公司在FPGA技术方面持续进行创新。1992年,公司推出了基于静态随机存储器(SRAM)的FPGA器件,使得FPGA在速度和灵活性方面有了显著提升。此后,阿尔特拉不断推出新的器件系列和工具软件,以满足客户对于性能和可编程性的不断提升的需求。

  3. 与竞争对手的竞争:在FPGA市场,阿尔特拉与Xilinx是两大主要竞争对手。两家公司之间展开了激烈的竞争,包括技术研发、产品性能、市场份额等方面。为了在市场上取得优势,阿尔特拉不断加大研发投入,推出了一系列领先的产品和解决方案,并通过全球销售网络拓展市场。

  4. 收购与合并:阿尔特拉公司在发展过程中进行了多次收购与合并,以扩大市场份额和提升技术实力。2015年,英特尔公司以约160亿美元的价格收购了阿尔特拉,将其并入英特尔旗下成为其子公司。这一收购使得英特尔得以整合阿尔特拉的FPGA技术和产品,进一步巩固了其在半导体行业的地位。

  5. 公司发展与创新:作为英特尔的子公司,阿尔特拉继续致力于技术创新和业务拓展。公司不仅持续改进现有产品的性能和功能,还积极投入到新兴领域的研发与应用,如数据中心、人工智能、物联网等。阿尔特拉通过不断推出创新产品和解决方案,保持了在半导体行业的领先地位。

以上是关于阿尔特拉公司发展的五个相关故事,这些故事展示了阿尔特拉从创立初期到被英特尔收购的发展历程,以及其在FPGA技术领域的技术创新、市场竞争和业务拓展等方面的重要进展。

Crowd Supply公司的发展小趣事

近年来,电子行业面临着诸多挑战,如技术更新迅速、市场竞争激烈等。Crowd Supply作为行业的一员,也不可避免地受到了这些挑战的影响。然而,他们并没有因此而退缩,反而通过持续创新和优化平台服务来应对这些挑战。他们不断调整众筹策略,加强项目筛选和风险评估,以确保平台上项目的质量和成功率。同时,他们也积极寻求新的商业模式和合作机会,以拓展业务范围和提升盈利能力。

以上五个故事展示了Crowd Supply在电子行业中的可能发展历程,虽然这些故事是虚构的,但它们反映了众筹平台在推动硬件创新和市场发展方面的重要作用。通过不断创新和优化服务,Crowd Supply有望在未来继续发挥其在电子行业中的领导作用。

Babcock Inc公司的发展小趣事

随着公司的发展壮大,Babcock开始注重品牌建设和企业文化建设。通过加强品牌宣传和推广,提升公司的知名度和美誉度;同时,公司还注重培养员工的归属感和忠诚度,营造积极向上的工作氛围。这些举措不仅提升了公司的软实力,也为公司的长远发展提供了有力保障。

这五个故事展示了Babcock Inc公司在电子行业中的发展历程和取得的成就。通过技术创新、市场拓展、国际合作以及品牌建设等方面的努力,Babcock逐渐成为了电子行业中的佼佼者,为行业的发展做出了积极贡献。

Autonics公司的发展小趣事

作为一家具有社会责任感的企业,Autonics不仅注重经济效益的发展,还积极参与公益事业和环保活动。公司致力于推动绿色生产,减少对环境的影响。同时,Autonics还关注员工福利和社会贡献,为员工提供良好的工作环境和发展空间,积极回馈社会。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

以上五个故事仅是对Autonics公司发展起来的一些重要阶段的概括性描述,并未涉及具体的细节和内部信息。如需了解更多关于Autonics公司的发展历程和故事,建议查阅相关新闻报道、行业分析报告或公司官方网站。

Delock公司的发展小趣事

为了保持技术的领先地位,Delock公司非常重视与高校、研究机构的研发合作。公司先后与多所知名大学和研究机构建立了紧密的合作关系,共同开展电子连接技术的研发和创新。这些合作不仅为Delock公司带来了源源不断的技术创新成果,也为公司培养了一批高素质的研发人才。通过与高校、研究机构的紧密合作,Delock公司在电子连接技术领域始终保持领先地位。

汇顶科技(GOODiX)公司的发展小趣事

随着公司规模的扩大和产品线的丰富,Delock公司开始积极拓展国际市场。公司先是在欧美等发达国家设立了办事处和分销中心,随后又逐步进入亚洲、非洲等新兴市场。为了更好地满足全球用户的需求,Delock公司还针对不同地区的市场特点进行产品定制和营销策略的调整。这一系列的全球化战略让Delock公司的产品在全球范围内获得了广泛的认可和应用。

问答坊 | AI 解惑

将CIMS技术引入到PCB组装中来

1 引言 表面安装技术(SMT)在国内PCB板组装(以下简称PCBA)行业正迅速被采用,目前,国内已引进了1万多条SMT生产线。PCBA行业中的重要加工设备均属计算机控制的自动化生产设备。如点胶机、印刷机、贴片机、插件机、AOI(自动光学检测仪)、ICT( ...…

查看全部问答>

USB analyzer是一个HID设备么?

USB协议分析器用来截取usb数据,有没有用过的?这个设备是一个HID(人机接口设备)么? 这个设备通过usb线连接PC机,PC上有个客户端,可以将截获的数据显示出来 现在要开发一个应用程序,从PC上连接该设备的usb口读入数据,不知道该怎么实现,如 ...…

查看全部问答>

关于pocket pc 2003环境下使用socket API(非socket类)编写通信程序的问题

各位老师、前辈大家好。小弟做win ce刚入门,有问题要请教,望诸位帮助答疑解惑。我使用microsoft vc 2005开发一个PDA(win ce4.21)即时通信的客户端,使用TCP协议。所有通信函数均使用socket的API方式,没有使用C++封装过的CSocket,CCeSocket等。大 ...…

查看全部问答>

ARM入门真难

刚上班不到一个礼拜. 好痛苦呀! 本人计算机专业的,更偏向于软件,可一进公司,经理就让我做跟ARM有关的东西. 给了我两本周立功写的和配套实验书,还有开发板,仿真器让我在一个礼拜内. 写个程序出来. 我以前只学过微机原理,连单片机也没学过,一下 ...…

查看全部问答>

FTK在RT-Thread的演示(win32平台)

这个是把svn版本的FTK运行于RT-Thread上,采用的是mini2440分支,为了让大家能够直观的看到效果就做成QEMU虚拟机的形式,下载后在Windows上解压到一个目录运行run-rtthread-ftk.bat批处理文件就可以了,不需要真实的开发板。 内部是这样的,OS跑的 ...…

查看全部问答>

开发CE6.0应用程序 采用SDK、MFC、.NET FRAMEWORK,哪种用的最多?

开发CE6.0应用程序   采用SDK、MFC、.NET FRAMEWORK, 哪种用的最多?…

查看全部问答>

DS1302.。。

DS1302  VCC接5V,GND接公共地,X1 X2接32.768K晶振,匹配两个电容。 1 、 电容我试过5P  15P  20P的,都不起振 2、 芯片我也换过新的 都不起振 3、 不管单片机给1302发送控制指令与否 都不起振 4、 我就想不明白了 ,如此简单 ...…

查看全部问答>

MSP430FR5739慢慢学三:NTC电阻测温度

测温度用DS18B20?杀鸡焉用宰牛刀,既麻烦又浪费。EXP430FR5739不是板载了NTC热敏电阻了么,何不利用?(本想用片内温度传感器,但是误差可能过大,遂放弃) 板载NTC电阻在25℃下为100K,温度升高电阻减小,温度降低电阻增大。由于不知NTC电阻具体 ...…

查看全部问答>

关于FPGA加密问题

众所周知,所有FPGA基本上都是基于SRAM结构的,其程序(固件)是通过JTAG口直接加载或从外部Flash加载到内部SRAM中运行的。由于Flash本身无法加密,因此FPGA程序加密保护是所有开发者必须面临的一个主要问题。目前,FPGA程序加密主要有两种方法:1 ...…

查看全部问答>

VS2008开发wince 窗体无法继承问题

为什么.net compact framework 开发wince或 windows phone 这类的程序,都不能继承窗体呢? 直接填加项目--window窗体-继承窗体后都出现以下错误: 文件中的类都不能进行设计,因此未能为该文件显示设计器。设计器检查出文件中有以下类: Form4 ...…

查看全部问答>