发新帖我要提问
123
返回列表
打印
[其他ST产品]

什么是HAL(Hardware Abstraction Layer)?

[复制链接]
楼主: 雨果喝水
手机看帖
扫描二维码
随时随地手机跟帖
41
雨果喝水|  楼主 | 2023-8-27 17:29 | 只看该作者 回帖奖励 |倒序浏览
仔细阅读完代码后,我们不难发现HAL_UART_IRQHandler()中还调用了 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); HAL_UART_ErrorCallback(huart)等回调函数,在keil中右键点击go to Defination,我们发现这些函数前均有weak关键字

使用特权

评论回复
42
雨果喝水|  楼主 | 2023-8-27 17:29 | 只看该作者
/**
  * @brief  Rx Transfer completed callbacks.
  * @param  huart  Pointer to a UART_HandleTypeDef structure that contains
  *                the configuration information for the specified UART module.
  * @retval None
  */
__weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
  /* Prevent unused argument(s) compilation warning */
  UNUSED(huart);
  /* NOTE: This function should not be modified, when the callback is needed,
           the HAL_UART_RxCpltCallback could be implemented in the user file
   */
}

/**
  * @brief  Rx Half Transfer completed callbacks.
  * @param  huart  Pointer to a UART_HandleTypeDef structure that contains
  *                the configuration information for the specified UART module.
  * @retval None
  */
__weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart)
{
  /* Prevent unused argument(s) compilation warning */
  UNUSED(huart);
  /* NOTE: This function should not be modified, when the callback is needed,
           the HAL_UART_RxHalfCpltCallback could be implemented in the user file
   */
}

使用特权

评论回复
43
雨果喝水|  楼主 | 2023-8-27 17:29 | 只看该作者
什么是weak关键字呢?其实函数名称前面加上__weak 修饰符,我们一般称这个函数为“弱函数”。
加上了__weak 修饰符的函数,用户可以在用户文件中重新定义一个同名函数,最终编译器编译的时候,会选择用户定义的函数,如果用户没有重新定义这个函数,那么编译器就会执行__weak 声明的函数,并且编译器不会报错。所以我们可以在别的地方定义一个相同名字的函数,而不必也尽量不要修改原始函数,于是这便实现了回调,回调给用户,使中断服务程序最终由用户设计,这种方式增强了代码的逻辑性:中断发生后先由内部硬件托管给HAL,HAL调用用户自己编写的回调函数实现功能,增加了文件的嵌套程度

使用特权

评论回复
44
雨果喝水|  楼主 | 2023-8-27 17:29 | 只看该作者
(四)HAL库编程方式

HAL库提供了三种编程方式,分别是轮询模式、中断模式、DMA模式。
具体三种方式的编程案例详见STM32 ppp调试经验

使用特权

评论回复
45
Bowclad| | 2024-5-12 23:03 | 只看该作者
hal库移植起来确实是很方便

使用特权

评论回复
46
Clyde011| | 2024-9-16 07:24 | 只看该作者

它们之间的间距应至少为0.5mm。

使用特权

评论回复
47
公羊子丹| | 2024-9-16 08:17 | 只看该作者

会占用PCB的空间,成本也会更高。

使用特权

评论回复
48
万图| | 2024-9-16 09:20 | 只看该作者

对于信号回路的峰值电压防护电路不应动作,通常在信号回路中,防护电路的动作电压是信号回路的峰值电压的1.3~1.6倍。

使用特权

评论回复
49
Uriah| | 2024-9-16 10:23 | 只看该作者

它们通常用于分线板或小模块。

使用特权

评论回复
50
帛灿灿| | 2024-9-16 12:19 | 只看该作者

开关管T交替工作于通/断两种状态,当开关管关断时,脉冲变压器处于“空载”状态,其中储存的磁能将被积累到下一个周期

使用特权

评论回复
51
Bblythe| | 2024-9-16 13:22 | 只看该作者

在印刷电路板制造中

使用特权

评论回复
52
周半梅| | 2024-9-16 15:18 | 只看该作者

选择测试方法和测试参数是检测过程中的重要步骤

使用特权

评论回复
53
Pulitzer| | 2024-9-16 16:21 | 只看该作者

它产生的噪声是对地噪声

使用特权

评论回复
54
童雨竹| | 2024-9-16 18:17 | 只看该作者

对于环氧树脂而言,一般把导热系数为0.5W/M·K的导热性能已经被定义为高导热

使用特权

评论回复
55
Wordsworth| | 2024-9-16 19:20 | 只看该作者

抑制各种高速信号产生的电磁波向外发射

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则