完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
USART_IRQHandler这个是中断响应函数,包含各类中断,HAL_UART_TxCpltCallback()这个是完成发送的后才进来...但这个函数是包含在USART_IRQHandler...
|
|
|
|
|
|
|
|
|
|
|
|
区别嘛。。。其实本质上来说,没啥区别,就是个命名的区别。。。但是,有名字就代表有意义。。。USART_IRQHandler就是硬件入口,换句话说就是硬件触发的时候,STM32调用的函数,这个其实可以通过改启动文件,来换成其他名字都可以。。。HAL_UART_TxCpltCallback回调函数,就是硬件调用USART_IRQHandler后,会在里面调用这个。。。看情况要不要,可以把处理直接写在USART_IRQHandler也阔以滴。。。
|
|
|
|
|
|
|
|
|
|
|
|
第一个就是串口的中断服务函数,如果使用第二个,需要串口的中断服务函数中调用HAL库的中断处理函数,在串口发送送完数据后,HAL库才会调用第二个回调函数,通知应用程序
|
|
|
|
|
|
|
|
|
|
|
|
USART_IRQHandler(),这个相当于快递公司,只要有邮件,都进去
HAL_UART_TxCpltCallback(),这个相当于快递公司的发件处,只有发出的邮件,才进去。收到的邮件不进去。 |
|
|
|
|
|
看名字就知道区别了,或者看源代码就知道在USART_IRQHandler中会调用HAL_UART_TxCpltCallback
|
|
|
|
|
jfuwre 发表于 2018-8-17 07:53 谢谢, 请问一下HAL_UART_TxCpltCallback 这个函数如果写在 IRQHander函数外面,当发送信息的时候,会进入那个函数?如果只会触发IRQHander 函数 ,意思就是说HAL_UART_TxCpltCallback只有在IRQHander函数中才有效吗? |
|
|
|
|
cmh25 发表于 2018-8-17 09:10 肯定是在USART_IRQHandler里面调用了这个函数,才会执行。。。不调用执行个毛线。。。HAL_UART_TxCpltCallback就是个普通的函数。。。只是HAL库为了统一API才提供的一个接口而已。。。当然了也是为了彻底分开底层和上层。。。 |
|
|
|
|
|
Callback函数是留给客户的接口,可以自己写,另外一个就不需要自己改动了。
|
|
|
|
|
|
除非有很特殊的控制,一般不需要在USART_IRQHandle函数中写代码。
直接在其他代码文件中重定义一个HAL_UART_TxCpltCallback函数来实现中断处理就可以了。 |
|
|
|
|
|
USART_IRQHandler是中断服务函数,对应中断向量的跳转执行入口;
HAL_UART_TxCpltCallback是发送回调函数,回调函数是中断服务程序的实现。也就是在USART_IRQHandler中调用HAL_UART_TxCpltCallback,当然也可以调用别的函数,比如中断收等。回调函数只是为了方便跨平台移植,脱离硬件操作。就像在操作系统移植中需要对应器件在相应系统下的BSP包一样,BSP把低层驱动活干了,操作系统中调用接口就可以了。 可以没有回调函数,但不能没有中断服务函数。直接在中断服务函数中处理中断事件,相当于裸跑的话,那么在中断服务函数中调用一条中断回调函数,就相当于在操作系统下处理中断事件,操作系统并不关心中断具体是怎么处理的,只关心能不是得到正确的数据和期待的结果。 |
|
|
|
|
|
第一个是你只要打开了中断标志,串口的任何中断都会导致代码执行到此中断处理函数中,第二个则只是在发送完成后触发中断的回调函数
|
|
|
|
|
|
|
|
|
|
|
|
一个是中断入口函数,一个是中断回调函数
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 07:27 , Processed in 1.549704 second(s), Total 107, Slave 88 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4262