历史上的今天
返回首页

历史上的今天

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

2021年12月21日 | STM32HAL库中断模式串口收发

2021-12-21 来源:eefocus

一.简单了解

串口模式实现有三种

1.普通模式:在主函数中接收函数

2.中断模式:产生的不影响主程序运行

3. DMA模式:与主函数互不影响,独立运行

本文记录第二种普通模式。

学习目标是:实现中断串口的数据收发,发送数据时LED灯电平翻转。


二.步骤

在上一篇文章基础上,传送门:STM32HAL库普通模式串口收发

需在STM32CUBEMX软件中USART1的NVIC SETTING中使能中断,然后再次生成代码。

【小tips:如果在用户区域块编写代码的话不会被覆盖】

1-宏定义串口中断


#define UART1_IRQ

uint8_t TdataIRQ[]={"welcome to uart irq!rn"};//测试数组

uint8_t Rdata;//存放接收数据


2-同样是在stm32l4xx_hal_uart.c中1611行找到函数


HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);

HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);


3-在main函数中添加如下代码


#ifdef UART1_IRQ

HAL_UART_Receive_IT(&huart1,&Rdata,1);//触发中断接收

HAL_UART_Transmit_IT(&huart1,TdataIRQ,sizeof(TdataIRQ));//发送我们使用的IRQ TEST 

#endif

while(1)

{

#ifdef UART1_IRQ

HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);

printf("welcome to uart1 IRQ test!rn");

HAL_Delay(2000);

#endif

}


4-修改回调函数


//回调函数

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)

{

#ifdef UART1_IRQ

//把接收到的数据发送回屏幕,发送函数要在接收函数前面

HAL_UART_Transmit(&huart1,&Rdata,1,0xff);

HAL_UART_Receive_IT(&huart1,&Rdata,1);

#endif

}


三.总结

1.在串口可以发现,使用串口中断实现数据的收发,是不影响while中的循环的,不影响主程序运行。

2.如果是在普通模式下使用串口,添加延时函数HAL_Delay(2000),会导致程序反应不过来。

推荐阅读

史海拾趣

Emhiser Research Inc公司的发展小趣事

品质控制一直是Emhiser Research非常重视的方面。公司建立了严格的质量管理体系和检测流程,确保每一件产品都符合高标准的质量要求。同时,公司还注重品牌建设,通过不断提升产品品质和服务水平来树立品牌形象。这些努力使得Emhiser Research在客户中赢得了良好的口碑和信任。

品赞(G-Switch)公司的发展小趣事
在排除故障后,对保护电路进行测试,确保其能够正常响应电源断相故障。
宝乘(baocheng)公司的发展小趣事

面对未来电子行业的发展趋势,宝乘公司继续坚持创新驱动的发展战略。公司加大研发投入,不断推出具有创新性和前瞻性的产品。同时,宝乘还积极探索新的市场领域和应用场景,为公司的未来发展奠定坚实的基础。相信在不久的将来,宝乘公司将成为电子行业中的佼佼者,为社会的进步和发展做出更大的贡献。

请注意,这些故事是基于现有信息的推测,并不代表宝乘公司的真实历史。如果您需要更准确和详细的信息,建议直接联系宝乘公司或查阅相关报道和资料。

EMC [ELAN Microelectronics Corp]公司的发展小趣事

义隆电子股份有限公司于1994年5月在台湾创立,以亚太区著名的IC设计公司为目标。公司初始阶段就明确了以研发和销售集成电路(IC)产品为核心业务的战略方向。在创立初期,义隆电子积极引进高素质的研发人才,建立了强大的研发团队,并投入大量资金用于新产品的研发。凭借卓越的技术实力和敏锐的市场洞察力,义隆电子在消费性芯片、通讯类芯片等领域迅速取得了突破。

Flambeau公司的发展小趣事

随着电子行业的快速发展,Flambeau公司不断加大研发投入,致力于技术创新和产品多样化。公司研发团队通过改进生产工艺、优化材料配方、引入先进的设计软件等措施,不断提升产品的性能和质量。同时,Flambeau还积极拓展产品线,从最初的塑料储存产品扩展到更广泛的电子包装解决方案,包括防静电包装、抗震包装等,以满足电子行业日益增长的多样化需求。

Hamamatsu公司的发展小趣事

为了进一步扩大市场份额和提升品牌影响力,Flambeau公司积极实施市场拓展战略。公司不仅在北美市场深耕细作,还逐步将业务拓展到欧洲、亚洲等国际市场。通过参加国际展会、建立海外销售渠道、与当地企业建立合作关系等方式,Flambeau成功地将自己的品牌和产品推向全球。同时,公司还注重品牌建设和客户服务,通过提供优质的售前咨询、售中支持和售后服务,赢得了广大客户的信赖和好评。

问答坊 | AI 解惑

全国大学生电子设计竞赛历年试题

本帖最后由 paulhyde 于 2014-9-15 08:55 编辑 全国大学生电子设计竞赛历年试题  …

查看全部问答>

自己组装生产摄像机优势在哪?

本人从事安防行业5年,一路走来,一直在做监控摄像机这一块,发现自己组装生产摄像机,有以下几大优势,供大家参考: 第一:摄像机本身组装很简单,技术含量不高,不如自己动手,还学会了组装,与摄像机内部结构。 第二:自己组装生产摄像机,价格 ...…

查看全部问答>

3D报纸引领阅读潮流 成本与内容成制约发展瓶颈

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 自2009年年底起,3D在国内成为了“时尚”的代名词,继3D电影《阿凡达》、《爱丽丝梦游仙境》在中国市场赚得盆满钵满,3D似乎也成为了报刊企业的又一掘金点。   2010年4月16日,湖北《十堰晚 ...…

查看全部问答>

关于开发CDMA的通信模块!

先祝各位达人元旦快乐! 我老板现在想开发CDMA的通信模块,就是网上很多卖的那种,可以通过串口或其他通用接口进行CDMA无线通信,但我查了很长时间仍然没有头绪……望各位达人指点一二: 用于开发CDMA模块一般都有什么芯片?我看网上大部分都是高 ...…

查看全部问答>

请教关于Powerpc文件系统的问题

Powerpc现在编译的文件系统是jff2格式,用串口线先传倒powerpc的RAM里,再复制进flash,但是现在文件系统似乎限制了大小,如果传3M左右就能正常启动,如果大于4M就不能正常启动,系统会不停重启。但是如果系统能正常启动后,用FTP上传文件,则没有 ...…

查看全部问答>

workbench!!

之前用的是vxworks+Tornado开发方式,一切比较顺利!! 最近单位买了最新版的vxworks,开发环境是workbench,刚接触,本打算先做启动软盘尝试启动vxworks,可发现每次编译后,目标机出现v1.6++++++++++++++++++然后又重起,尝试了各种方法,都是这样,请各位 ...…

查看全部问答>

小弟碰到个很奇怪的问题

S3C44B0X那块板子,能在线调试并且LCD显示正常,但是将程序烧录进去后,却发现LCD没有显示了。这是怎么回事呢?有哪位大虾遇到过同样的问题吗? 做LED实验却不管在线调试还是将程序烧录进去,都能得到正确的结果。…

查看全部问答>

【芯币兑换】AVR ATmega16学习板标准原理图

下面是最终版原理图,请大家参考 …

查看全部问答>

有湖北的吗?今年怎么还不出设备清单??

本帖最后由 paulhyde 于 2014-9-15 09:03 编辑 都12号了,还不出设备清单,往年都有的,武大咋搞的!!!  …

查看全部问答>