请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

 找回密码
 立即注册
楼主: eric2013
收起左侧

【安富莱】STM32H7用户手册发布,重在BSP驱动包设计方法,HAL库的框架学习,授人以渔,更新至95章(2024-01-08)

  [复制链接]

7

主题

42

回帖

63

积分

初级会员

积分
63
发表于 2022-4-20 16:35:50 | 显示全部楼层
老师,这周还会更新 bsp视频吗
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2022-5-31 21:06:16 | 显示全部楼层
感謝樓主, 下載學習
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-6-22 10:23:52 | 显示全部楼层
支持,什么时候能把以太网部分加上
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-6-22 10:24:40 | 显示全部楼层
支持,什么时候能把以太网加上
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2022-6-22 11:23:24 | 显示全部楼层
公子羿 发表于 2022-6-22 10:24
支持,什么时候能把以太网加上

网络是单独的文档。

image.png
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2022-6-22 19:49:43 | 显示全部楼层
支持硬汉哥
回复

使用道具 举报

9

主题

42

回帖

69

积分

初级会员

积分
69
QQ
发表于 2022-7-24 22:38:08 | 显示全部楼层
以后能不能出一个vscode的编程环境,感觉这个可以长久使用,不用再换编译器了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2022-7-25 00:25:29 | 显示全部楼层
wgco98 发表于 2022-7-24 22:38
以后能不能出一个vscode的编程环境,感觉这个可以长久使用,不用再换编译器了

IAR就可以。

【视频】新版IAR9.30初体验,IAR官方发布VS Code插件支持,实测贼舒服,让IDE内卷来的更猛烈些吧
https://www.armbbs.cn/forum.php? ... 3103&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

9

主题

42

回帖

69

积分

初级会员

积分
69
QQ
发表于 2022-7-25 12:07:28 | 显示全部楼层
eric2013 发表于 2022-7-25 00:25
IAR就可以。

【视频】新版IAR9.30初体验,IAR官方发布VS Code插件支持,实测贼舒服,让IDE内卷来的更 ...

IAR好像也收费,使用起来没有vscode那么智能,个人觉得vscode可能会比较好
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2022-7-25 12:20:01 | 显示全部楼层
wgco98 发表于 2022-7-25 12:07
IAR好像也收费,使用起来没有vscode那么智能,个人觉得vscode可能会比较好

VSCode仅是个壳,得倒腾GCC,Cmake等开源组件才行,不适合初学者玩。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2022-8-2 08:59:59 | 显示全部楼层
硬汉哥,有没有基于IAR的H7,ucosii的教程呢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2022-8-2 10:48:39 | 显示全部楼层
ruizi 发表于 2022-8-2 08:59
硬汉哥,有没有基于IAR的H7,ucosii的教程呢

只有例子,没做过教程,有什么不明白的,随时发帖交流

基于V5,V6和V7的最新版uCOS-II V2.93.00程序模板,含MDK和IAR两个版本,支持uC/Probe(2020-03-20)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=96928
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2022-8-11 12:00:07 | 显示全部楼层
eric2013 发表于 2022-8-2 10:48
只有例子,没做过教程,有什么不明白的,随时发帖交流

基于V5,V6和V7的最新版uCOS-II V2.93.00程序模 ...

谢谢硬汉哥,很给力,支持!!!
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2022-8-29 19:51:03 | 显示全部楼层
请问版主,实际工程中(带RTOS),SPI flash 使用 查询、中断、DMA 哪种效果比较好? 最新的H7--TOOL 程序使用的哪种?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2022-9-7 02:04:50 | 显示全部楼层
清风徐来 发表于 2022-8-29 19:51
请问版主,实际工程中(带RTOS),SPI flash 使用 查询、中断、DMA 哪种效果比较好? 最新的H7--TOOL 程序 ...

不好意思,我忘了你这个问题了。

TOOL上带的是QSPI Flash,用的是内存映射模式。
回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
发表于 2022-9-28 13:55:43 | 显示全部楼层
没有ETH部分的HAL库讲解吗?
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2023-1-8 21:40:49 | 显示全部楼层
造福广大工程师,点赞
回复

使用道具 举报

2

主题

34

回帖

40

积分

新手上路

积分
40
发表于 2023-4-21 15:16:47 | 显示全部楼层
请教一下,文档里提到“由于函数 HAL_ADC_Start_DMA 封装的 DMA 传输函数是 HAL_DMA_Start_IT,而不是专门的 DMA
双缓冲函数 HAL_DMAEx_MultiBuferStart_IT”,如果想使用HAL_DMAEx_MultiBuferStart_IT方法,该怎么去做,还是说不能用?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2023-5-15 02:16:35 | 显示全部楼层
2023-05-15 V10.5
CANFD专题视频教程发布,同时添加例子:
V7-085_双FDCAN之间通信(仲裁500K,通信1M).7z
V7-086_双FDCAN之间通信, 综合配置(仲裁500K,通信2M).7z
V7-087_双FDCAN之间通信, 综合配置(仲裁500K,通信1M).7z
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2023-5-25 09:23:19 | 显示全部楼层
6666,又回归到arm
回复

使用道具 举报

2

主题

34

回帖

40

积分

新手上路

积分
40
发表于 2023-6-25 16:49:08 | 显示全部楼层
楼主,现在v7的例程使用的是ac6吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2023-6-29 09:22:00 | 显示全部楼层
风过不留痕 发表于 2023-6-25 16:49
楼主,现在v7的例程使用的是ac6吗

部分例子是带AC6的。
回复

使用道具 举报

37

主题

149

回帖

260

积分

高级会员

积分
260
发表于 2023-12-5 16:16:50 | 显示全部楼层
中文乱码……?
微信图片_20231205161546.jpg
回复

使用道具 举报

9

主题

47

回帖

74

积分

初级会员

积分
74
发表于 2023-12-21 11:38:17 | 显示全部楼层
eric2013 发表于 2019-3-27 06:11
备份曾经奋斗的那些日子

大佬确实牛逼,我又来参考参考QSPI,大佬出linux教程嘛,我一定买你们板子学习学习
回复

使用道具 举报

9

主题

47

回帖

74

积分

初级会员

积分
74
发表于 2023-12-26 21:15:58 | 显示全部楼层
硬汉大佬,求教一下,为什么这里不需要等待指令发送完毕呢,实测发现如果这里使用中断的方式,也不会执行中断回调,难道这里只是写数据,在“HAL_QSPI_Transmit_DMA”中发送出去的嘛,好像我也没看到文档说明(可能是我看漏了)
1703596421354.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2023-12-27 08:32:49 | 显示全部楼层
嵌入式菜鸟^_^ 发表于 2023-12-26 21:15
硬汉大佬,求教一下,为什么这里不需要等待指令发送完毕呢,实测发现如果这里使用中断的方式,也不会执行中 ...

有超时参数。
回复

使用道具 举报

9

主题

47

回帖

74

积分

初级会员

积分
74
发表于 2023-12-27 11:08:47 | 显示全部楼层

大佬,我的意思是这里这句话并不会发送指令出去,如果把这里改成HAL_QSPI_Command_IT,他是不会去触发QSPI中断的,所以我才会觉得这句话并没有发送指令出去,只有执行到"HAL_QSPI_Transmit_DMA"的时候才会触发MDMA中断,但是没有这句话是不能写入到外部flash的
回复

使用道具 举报

9

主题

47

回帖

74

积分

初级会员

积分
74
发表于 2023-12-27 11:17:05 | 显示全部楼层
大概就是这个意思
1703646879701.png
1703646953371.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2023-12-27 11:27:52 | 显示全部楼层

你的有没有写进去我不知道,我的必须写进去了,否则后续的DMA操作是无法正常执行的。

[C] 纯文本查看 复制代码
/**
  * @brief Set the command configuration. 
  * @param hqspi: QSPI handle
  * @param cmd : structure that contains the command configuration information
  * @param Timeout : Timeout duration
  * @note   This function is used only in Indirect Read or Write Modes
  * @retval HAL status
  */
HAL_StatusTypeDef HAL_QSPI_Command(QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, uint32_t Timeout)
{
  HAL_StatusTypeDef status = HAL_ERROR;
  uint32_t tickstart = HAL_GetTick();
    
  /* Check the parameters */
  assert_param(IS_QSPI_INSTRUCTION_MODE(cmd->InstructionMode));
  if (cmd->InstructionMode != QSPI_INSTRUCTION_NONE)
  {
    assert_param(IS_QSPI_INSTRUCTION(cmd->Instruction));
  }

  assert_param(IS_QSPI_ADDRESS_MODE(cmd->AddressMode));
  if (cmd->AddressMode != QSPI_ADDRESS_NONE)
  {
    assert_param(IS_QSPI_ADDRESS_SIZE(cmd->AddressSize));
  }

  assert_param(IS_QSPI_ALTERNATE_BYTES_MODE(cmd->AlternateByteMode));
  if (cmd->AlternateByteMode != QSPI_ALTERNATE_BYTES_NONE)
  {
    assert_param(IS_QSPI_ALTERNATE_BYTES_SIZE(cmd->AlternateBytesSize));
  }

  assert_param(IS_QSPI_DUMMY_CYCLES(cmd->DummyCycles));
  assert_param(IS_QSPI_DATA_MODE(cmd->DataMode));

  assert_param(IS_QSPI_DDR_MODE(cmd->DdrMode));
  assert_param(IS_QSPI_DDR_HHC(cmd->DdrHoldHalfCycle));
  assert_param(IS_QSPI_SIOO_MODE(cmd->SIOOMode));
  
  /* Process locked */
  __HAL_LOCK(hqspi);

  if(hqspi->State == HAL_QSPI_STATE_READY)
  {
    hqspi->ErrorCode = HAL_QSPI_ERROR_NONE;
    
    /* Update QSPI state */
    hqspi->State = HAL_QSPI_STATE_BUSY;   
    
    /* Wait till BUSY flag reset */
    status = QSPI_WaitFlagStateUntilTimeout(hqspi, QSPI_FLAG_BUSY, RESET, tickstart, Timeout);
    
    if (status == HAL_OK)
    {
      /* Call the configuration function */
      QSPI_Config(hqspi, cmd, QSPI_FUNCTIONAL_MODE_INDIRECT_WRITE);
      
      if (cmd->DataMode == QSPI_DATA_NONE)
      {
        /* When there is no data phase, the transfer start as soon as the configuration is done 
        so wait until TC flag is set to go back in idle state */
        status = QSPI_WaitFlagStateUntilTimeout(hqspi, QSPI_FLAG_TC, SET, tickstart, Timeout);

        if (status == HAL_OK)
        {
          __HAL_QSPI_CLEAR_FLAG(hqspi, QSPI_FLAG_TC);
          
          /* Update QSPI state */
          hqspi->State = HAL_QSPI_STATE_READY;
        }
        
      }
      else
      {
        /* Update QSPI state */
        hqspi->State = HAL_QSPI_STATE_READY;
      }
    }
  }
  else
  {
    status = HAL_BUSY;
  }
  
  /* Process unlocked */
  __HAL_UNLOCK(hqspi);

  /* Return function status */
  return status;
}
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-1-4 02:16:08 | 显示全部楼层
支持楼主
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2024-1-15 13:03:45 | 显示全部楼层
太牛了,学习学习。。。。。。。。
回复

使用道具 举报

9

主题

47

回帖

74

积分

初级会员

积分
74
发表于 2024-3-5 16:47:48 | 显示全部楼层
eric2013 发表于 2019-3-27 06:11
备份曾经奋斗的那些日子


1709628377921.png

硬汉哥,请问一下为啥在boot跳转过程中,为啥关掉全局中断后又要打开全局中断?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-3-29 19:05 , Processed in 0.298965 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表