硬汉嵌入式论坛

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

【STM32-V7】STM32H743XIH6开发板,丰富软件资源,强劲硬件配置,大量软件解决方案持续更新中(2024-01-08)

  [复制链接]

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-9-17 13:05:09 | 显示全部楼层
eric2013 发表于 2022-4-15 01:46
看着是你的显示区设小了。

您好,我想購買您的第 7 版板,我可以從教程中下載示例的源代碼嗎,如果我購買,是否可以獲得俄文或英文版的第 7 版儀器的程序版本它也?
Sorry if there some misunderstanding, i can speak only English or Russian. I used Google translate and tried to be clear in expressions.

对不起,如果你想回答我的地址是 atlantix.xp@gmail.com, atlantix_xp@mail.ru 我很难浏览该网站来搜索消息。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106405
QQ
 楼主| 发表于 2022-9-17 17:06:38 | 显示全部楼层
atlantix.xp 发表于 2022-9-17 13:05
您好,我想購買您的第 7 版板,我可以從教程中下載示例的源代碼嗎,如果我購買,是否可以獲得俄文或英文 ...

Our code comments are in Chinese, I don't know if it is suitable for you , just like this

[C] 纯文本查看 复制代码
/*
*********************************************************************************************************
*	函 数 名: bsp_CheckRunTime
*	功能说明: 计算当前运行时间和给定时刻之间的差值。处理了计数器循环。
*	形    参:  _LastTime 上个时刻
*	返 回 值: 当前时间和过去时间的差值,单位1ms
*********************************************************************************************************
*/
int32_t bsp_CheckRunTime(int32_t _LastTime)
{
	int32_t now_time;
	int32_t time_diff;

	DISABLE_INT();  	/* 关中断 */

	now_time = g_iRunTime;	/* 这个变量在Systick中断中被改写,因此需要关中断进行保护 */

	ENABLE_INT();  		/* 开中断 */
	
	if (now_time >= _LastTime)
	{
		time_diff = now_time - _LastTime;
	}
	else
	{
		time_diff = 0x7FFFFFFF - _LastTime + now_time;
	}

	return time_diff;
}

/*
*********************************************************************************************************
*	函 数 名: SysTick_Handler
*	功能说明: 系统嘀嗒定时器中断服务程序。启动文件中引用了该函数。
*	形    参:  无
*	返 回 值: 无
*********************************************************************************************************
*/
void SysTick_Handler(void)
{
	HAL_IncTick();	/* ST HAL库的滴答定时中断服务程序 */
	
	if (g_ucEnableSystickISR == 0)
	{
		return;
	}
	
	SysTick_ISR();	/* 安富莱bsp库的滴答定时中断服务程序 */
}

/*
*********************************************************************************************************
*	下面的代码使用一个TIM的4个捕获中断,实现4个硬件定时器
*********************************************************************************************************
*/

#ifdef TIM_HARD

/*
*********************************************************************************************************
*	函 数 名: bsp_InitHardTimer
*	功能说明: 配置 TIMx,用于us级别硬件定时。TIMx将自由运行,永不停止.
*			TIMx可以用TIM2 - TIM5 之间的TIM, 这些TIM有4个通道, 挂在 APB1 上,输入时钟=SystemCoreClock / 2
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
void bsp_InitHardTimer(void)
{
    TIM_HandleTypeDef  TimHandle = {0};
	uint32_t usPeriod;
	uint16_t usPrescaler;
	uint32_t uiTIMxCLK;
	TIM_TypeDef* TIMx = TIM_HARD;
	
	RCC_TIM_HARD_CLK_ENABLE();		/* 使能TIM时钟 */
	
    /*-----------------------------------------------------------------------
		bsp.c 文件中 void SystemClock_Config(void) 函数对时钟的配置如下: 

        System Clock source       = PLL (HSE)
        SYSCLK(Hz)                = 400000000 (CPU Clock)
        HCLK(Hz)                  = 200000000 (AXI and AHBs Clock)
        AHB Prescaler             = 2
        D1 APB3 Prescaler         = 2 (APB3 Clock  100MHz)
        D2 APB1 Prescaler         = 2 (APB1 Clock  100MHz)
        D2 APB2 Prescaler         = 2 (APB2 Clock  100MHz)
        D3 APB4 Prescaler         = 2 (APB4 Clock  100MHz)

        因为APB1 prescaler != 1, 所以 APB1上的TIMxCLK = APB1 x 2 = 200MHz;
        因为APB2 prescaler != 1, 所以 APB2上的TIMxCLK = APB2 x 2 = 200MHz;
        APB4上面的TIMxCLK没有分频,所以就是100MHz;

        APB1 定时器有 TIM2, TIM3 ,TIM4, TIM5, TIM6, TIM7, TIM12, TIM13, TIM14,LPTIM1
        APB2 定时器有 TIM1, TIM8 , TIM15, TIM16,TIM17

        APB4 定时器有 LPTIM2,LPTIM3,LPTIM4,LPTIM5

	----------------------------------------------------------------------- */
	if ((TIMx == TIM1) || (TIMx == TIM8) || (TIMx == TIM15) || (TIMx == TIM16) || (TIMx == TIM17))
	{
		/* APB2 定时器时钟 = 200M */
		uiTIMxCLK = SystemCoreClock / 2;
	}
	else	
	{
		/* APB1 定时器 = 200M */
		uiTIMxCLK = SystemCoreClock / 2;
	}

	usPrescaler = uiTIMxCLK / 1000000 - 1;	/* 分频比 = 1 */
	
	if (TIMx == TIM2 || TIMx == TIM5)
	{
		usPeriod = 0xFFFFFFFF;
	}
	else
	{
		usPeriod = 0xFFFF;
	}

	/* 
       设置分频为usPrescaler后,那么定时器计数器计1次就是1us
       而参数usPeriod的值是决定了最大计数:
       usPeriod = 0xFFFF 表示最大0xFFFF微秒。
       usPeriod = 0xFFFFFFFF 表示最大0xFFFFFFFF微秒。
    */
	TimHandle.Instance = TIMx;
	TimHandle.Init.Prescaler         = usPrescaler;
	TimHandle.Init.Period            = usPeriod;
	TimHandle.Init.ClockDivision     = 0;
	TimHandle.Init.CounterMode       = TIM_COUNTERMODE_UP;
	TimHandle.Init.RepetitionCounter = 0;
    TimHandle.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
	
	if (HAL_TIM_Base_Init(&TimHandle) != HAL_OK)
	{
		Error_Handler(__FILE__, __LINE__);
	}

	/* 配置定时器中断,给CC捕获比较中断使用 */
	{
		HAL_NVIC_SetPriority(TIM_HARD_IRQn, 0, 2);
		HAL_NVIC_EnableIRQ(TIM_HARD_IRQn);	
	}
    
    /* 启动定时器 */
	HAL_TIM_Base_Start(&TimHandle);
}

/*
*********************************************************************************************************
*	函 数 名: bsp_StartHardTimer
*	功能说明: 使用TIM2-5做单次定时器使用, 定时时间到后执行回调函数。可以同时启动4个定时器通道,互不干扰。
*             定时精度正负1us (主要耗费在调用本函数的执行时间)
*			  TIM2和TIM5 是32位定时器。定时范围很大
*			  TIM3和TIM4 是16位定时器。
*	形    参: _CC : 捕获比较通道几,1,2,3, 4
*             _uiTimeOut : 超时时间, 单位 1us. 对于16位定时器,最大 65.5ms; 对于32位定时器,最大 4294秒
*             _pCallBack : 定时时间到后,被执行的函数
*	返 回 值: 无
*********************************************************************************************************
*/
void bsp_StartHardTimer(uint8_t _CC, uint32_t _uiTimeOut, void * _pCallBack)
{
    uint32_t cnt_now;
    uint32_t cnt_tar;
	TIM_TypeDef* TIMx = TIM_HARD;
	
    /* H743速度较快,无需补偿延迟,实测精度正负1us */
    
    cnt_now = TIMx->CNT; 
    cnt_tar = cnt_now + _uiTimeOut;			/* 计算捕获的计数器值 */
    if (_CC == 1)
    {
        s_TIM_CallBack1 = (void (*)(void))_pCallBack;

		TIMx->CCR1 = cnt_tar; 			    /* 设置捕获比较计数器CC1 */
        TIMx->SR = (uint16_t)~TIM_IT_CC1;   /* 清除CC1中断标志 */
		TIMx->DIER |= TIM_IT_CC1;			/* 使能CC1中断 */
	}
    else if (_CC == 2)
    {
		s_TIM_CallBack2 = (void (*)(void))_pCallBack;

		TIMx->CCR2 = cnt_tar;				/* 设置捕获比较计数器CC2 */
        TIMx->SR = (uint16_t)~TIM_IT_CC2;	/* 清除CC2中断标志 */
		TIMx->DIER |= TIM_IT_CC2;			/* 使能CC2中断 */
    }
    else if (_CC == 3)
    {
        s_TIM_CallBack3 = (void (*)(void))_pCallBack;

		TIMx->CCR3 = cnt_tar;				/* 设置捕获比较计数器CC3 */
        TIMx->SR = (uint16_t)~TIM_IT_CC3;	/* 清除CC3中断标志 */
		TIMx->DIER |= TIM_IT_CC3;			/* 使能CC3中断 */
    }
    else if (_CC == 4)
    {
        s_TIM_CallBack4 = (void (*)(void))_pCallBack;

		TIMx->CCR4 = cnt_tar;				/* 设置捕获比较计数器CC4 */
        TIMx->SR = (uint16_t)~TIM_IT_CC4;	/* 清除CC4中断标志 */
		TIMx->DIER |= TIM_IT_CC4;			/* 使能CC4中断 */
    }
	else
    {
        return;
    }
}
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-9-17 18:47:29 | 显示全部楼层
eric2013 发表于 2022-9-17 17:06
Our code comments are in Chinese, I don't know if it is suitable for you , just like th ...

Code is not a problemm, everything can be translated easily. Moreover i familiar with code, so may be only some moments i will need to clear or to find out what and how something were done. The only problem is that i cant download anything related to V7 board is that i don't have access to your local network drive.
One more i wanted to clarify is H7 TOOL, looks like interesting for me but whole interface there is Chinese. I downloaded source code for version 1.4 but i don't know which studio did you used, i suppose Embarcadero but when i open a project some components is missing there (I could make it russian or english that's not a problemm), i can show you an error from there.
So as f conclusion, how can i get a source code, and how to get interface changes for H7 tool (if it ever possible). Thank you very much.
Board i found on Aliexpress hope that is you sell them/
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106405
QQ
 楼主| 发表于 2022-10-3 14:45:33 | 显示全部楼层
2022-10-03 V10.3
Modbus RTU主从机协议栈例子和视频教程
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106405
QQ
 楼主| 发表于 2022-10-3 14:48:34 | 显示全部楼层
2022-10-03 V10.3
Modbus RTU主从机协议栈例子和视频教程
回复

使用道具 举报

1

主题

10

回帖

13

积分

新手上路

积分
13
发表于 2022-10-12 09:59:50 | 显示全部楼层
有考虑出多核的吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106405
QQ
 楼主| 发表于 2022-10-13 01:25:04 | 显示全部楼层
apprentice 发表于 2022-10-12 09:59
有考虑出多核的吗

后面了研究下多核,感觉以后多核是个趋势。
回复

使用道具 举报

1

主题

10

回帖

13

积分

新手上路

积分
13
发表于 2022-10-13 16:29:38 | 显示全部楼层
eric2013 发表于 2022-10-13 01:25
后面了研究下多核,感觉以后多核是个趋势。

是的,多核同构、多核异构的也有好几款了,但是相关教程好像还没人做,公司也在考虑未来要不要用,希望能跟着硬汉哥学,授我以渔
回复

使用道具 举报

2

主题

25

回帖

31

积分

新手上路

积分
31
QQ
发表于 2022-10-25 16:14:39 | 显示全部楼层
eric2013 发表于 2019-7-15 09:44
STM32-V7 开发板资料盘内容更新记录

*************************************************************** ...

请问V7-64例程有IAR版本的吗?有出IAR版本的计划吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106405
QQ
 楼主| 发表于 2022-10-25 16:42:05 | 显示全部楼层
augustedward 发表于 2022-10-25 16:14
请问V7-64例程有IAR版本的吗?有出IAR版本的计划吗?

这个得后面有时间了弄。
回复

使用道具 举报

1

主题

22

回帖

25

积分

新手上路

886064641534128530

积分
25
发表于 2023-1-29 10:08:33 | 显示全部楼层
从F4到H7如何过渡?看了教程对H7在外部FLASH上跑代码,cache,内存保护还是不得其门,能抽出来单独好好讲讲吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106405
QQ
 楼主| 发表于 2023-1-29 10:27:35 | 显示全部楼层
杰瑞鼠 发表于 2023-1-29 10:08
从F4到H7如何过渡?看了教程对H7在外部FLASH上跑代码,cache,内存保护还是不得其门,能抽出来单独好好讲讲 ...

cache,mpu,boot等已经做了超级详细的文档版和视频版教程,有时间可以看看

(1)视频专题
【学以致用,授人以渔】2023视频教程汇总,DSP第10期,ThreadX第5期,BSP驱动第25期,USB实战第5期,GUI实战第3期(2023-01-03)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=110519

(2)文档
【安富莱】STM32H7用户手册发布,重在BSP驱动包设计方法,HAL库的框架学习,授人以渔,更新至95章(2022-04-11)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=86980
回复

使用道具 举报

0

主题

25

回帖

25

积分

新手上路

积分
25
发表于 2023-3-30 06:35:45 | 显示全部楼层
硬汉哥最近想出手H7开饭板,看到某宝上有以如图一段话,不知道这个2M 内部FLASH如何操作,是扩展的还是本身就有?下载程序时能不需修改就可使用这个"隐藏"2M?
IMG_7855.jpeg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106405
QQ
 楼主| 发表于 2023-3-30 10:49:14 | 显示全部楼层
mrgoodman 发表于 2023-3-30 06:35
硬汉哥最近想出手H7开饭板,看到某宝上有以如图一段话,不知道这个2M 内部FLASH如何操作,是扩展的还是本身 ...

当前市面上的H750系列都是2MB容量的。不需要任何修改,直接使用。
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2023-5-3 23:57:58 | 显示全部楼层
硬汉哥,请教个问题,小白,想用stm单片机实现一个 产品有以太网+wifi+4G+存储+canfd接口,但是我看开发板上的H750XB和XI都太贵了,成本有点受不住;有没有降本的方案,如果换芯片的话,您能推荐下么?该怎么选择芯片,害怕换了芯片代码差异太大,自己搞不定
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106405
QQ
 楼主| 发表于 2023-5-4 00:38:03 | 显示全部楼层
yuerang 发表于 2023-5-3 23:57
硬汉哥,请教个问题,小白,想用stm单片机实现一个 产品有以太网+wifi+4G+存储+canfd接口,但是我看开发板 ...

750XB价格现在160, 略高


12.png

其它大部分系列价格都已经下来了,可选型号非常多
12.png

13.png

14.png

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106405
QQ
 楼主| 发表于 2023-5-15 02:20:27 | 显示全部楼层
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

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2023-7-15 21:10:47 | 显示全部楼层
视频教程只能在线观看的吗? 有百度网盘下载连接吗?
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2023-7-15 21:15:42 | 显示全部楼层
视频教程只能在线观看吗? 有百度网盘下载链接吗? 谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106405
QQ
 楼主| 发表于 2023-7-16 09:58:40 | 显示全部楼层
Onesimos 发表于 2023-7-15 21:15
视频教程只能在线观看吗? 有百度网盘下载链接吗? 谢谢!

下载B站客户端软件,可以方便的下载视频。
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2023-10-9 18:09:41 | 显示全部楼层
已购买,对了问下汉哥 这边有没有引入Github源码的操作流程,好多人不太熟悉这个。比如说 Github中有SCPI的解析库 在 https://github.com/j123b567/scpi-parser
有没有在工程中引入并调用的操作流程
我看到 Github中有STM32的源码 就是引入工程调用的操作流程和注意事项 不太明白
比如说 https://github.com/Jana-Marie/stm32g4xx_usb_cdc 里面就有 STM32 通过USB 解析 SCPI指令
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106405
QQ
 楼主| 发表于 2023-10-10 09:10:55 | 显示全部楼层
zhk_xbox 发表于 2023-10-9 18:09
已购买,对了问下汉哥 这边有没有引入Github源码的操作流程,好多人不太熟悉这个。比如说 Github中有SCPI的 ...

纯C的,直接添加源码就行。如果有汇编的话,要注意汇编代码是GCC,mdk还是IAR的,这个注意下,一般移植问题都不大。除非作者提供的工程有问题。
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2023-11-11 15:13:07 | 显示全部楼层
STM32H743XIH6  这个芯片 只能4层板子吗?  2层可以不?
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2023-12-27 11:50:48 | 显示全部楼层
请问H7 有freertos的教程么
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106405
QQ
 楼主| 发表于 2023-12-27 11:55:17 | 显示全部楼层
pisces 发表于 2023-12-27 11:50
请问H7 有freertos的教程么

做了一期,一期就够了,看完就会了,比较简单。
【实战技能】 单步运行源码分析,一期视频整明白FreeRTOS内核源码框架和运行机制,RTOS Trace链表功能展示
https://www.armbbs.cn/forum.php?mod=viewthread&tid=121848

其它的看这个即可,V7不再更新了。
https://www.armbbs.cn/forum.php?mod=viewthread&tid=17658
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2024-3-18 20:39:38 | 显示全部楼层
hello,硬汉兄,怎么订阅你的嵌入式周报啊,想上班的时候看(主要是文字版的)
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106405
QQ
 楼主| 发表于 2024-3-19 08:04:39 | 显示全部楼层
yuerang 发表于 2024-3-18 20:39
hello,硬汉兄,怎么订阅你的嵌入式周报啊,想上班的时候看(主要是文字版的)

可以关注我们微信公众号,这个订阅还方便些。
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2024-4-5 22:33:40 来自手机 | 显示全部楼层
裸机教程在哪里?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106405
QQ
 楼主| 发表于 2024-4-7 07:49:01 | 显示全部楼层
龙龙7 发表于 2024-4-5 22:33
裸机教程在哪里?

【安富莱】STM32H7用户手册发布,重在BSP驱动包设计方法,HAL库的框架学习,授人以渔,更新至95章(2024-01-08)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=86980
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 11:55 , Processed in 0.350500 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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