beill8888
发表于 2020-4-21 15:55:32
好资料,谢谢分享,收藏
beill8888
发表于 2020-4-21 15:58:16
好资料,谢谢分享,收藏
litaogoo
发表于 2020-4-21 16:02:32
已收藏&支持。
szongen
发表于 2020-4-21 17:05:41
下载了培训合集STM32F7培训的"系统架构和存储器映射"文档,对这个高级的MCU有了初步的了解。
下面就说一下学习的内容:
1、性能
这里依据官方文档里coremark的跑分图
STM32F7在coremark上能达到1000的水平,性能是很强悍了。
2、硬件外设
像常见的主频增加、FLASH大小和RAM大小增加、数字和模拟外设的数量增加。还增加了" Quad SPI +dual flash mode"、" HDMI_CEC"、"SPDIF-RX"的外设。
3、系统架构
STM32 F7拥有两个独立的机制实现零等待执行性能:1、 ST ART Accelerator™ 用于内部Flash,2、可用于内部和外部存储器的一级缓存(4 KB指令缓存+ 4 KB数据cache)
AXI 和Multi-AHB 总线矩阵,两个通用DMA,以太网专用DMA, USB专用DMA, Chrom-ART硬件图形加速器。
更多的外设直接挂载在AHB总线上,寻址的速度变快。
建议:STM32F7的性能这么强悍,希望官方能出一些AI方面的培训,让这个核心做边缘计算的应用。
wenyangzeng
发表于 2020-4-21 17:32:40
培训资料学习心得
开发项目中需要使用定时器4的TI2输入引脚检测到上升沿后,经过一个延时后在OC1上产生一个延时输出的正脉冲。
图1
下载了《STM32定时器基本原理及常见问题之培训资料v3.10》学习。
掌握了本项目设计中针对定时器配置的要点:
1、使用TI2FP2作为触发源;
2、在TIMx_CCMR1写入CC2S=01,将TI2FP2映射到TI2;
3、在TIMx_CCER写CC2P=0,CC2NP=0,使TI2FP2能够检测到上升沿;
4、在TIMxSMCR写入TS=110,将TI2FP2配置为从模式控制器的触发TRGI;
5、在TIMxSMCR写入SMS=110,以使用TI2FP2启动计数器;
6、TIMx_CR1的OPM置1,配置OC1为单脉冲PWM输出。
使用CubeMX来配置TIM4,可以很方便快捷的根据使用要求配置成功定时器4。
但是在配置过程中发现这个Tim4通道2的TI2FP2居然是灰色,选择不了。这应该是CubeMX的一个bug,见图2。最后只能在生成的代码里修改。希望ST工程师能够改正。
图2
/* TIM4 init function */
void MX_TIM4_Init(void)
{
TIM_SlaveConfigTypeDef sSlaveConfig;
TIM_MasterConfigTypeDef sMasterConfig;
TIM_OC_InitTypeDef sConfigOC;
TIM_IC_InitTypeDef sConfigIC;
htim4.Instance = TIM4;
htim4.Init.Prescaler = 20;
htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
htim4.Init.Period = 500;
htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim4) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
if (HAL_TIM_PWM_Init(&htim4) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
if (HAL_TIM_IC_Init(&htim4) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
if (HAL_TIM_OnePulse_Init(&htim4, TIM_OPMODE_SINGLE) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
sSlaveConfig.SlaveMode = TIM_SLAVEMODE_TRIGGER;
补充内容 (2020-4-21 17:35):
这个代码不知为何没有全部显示:
sSlaveConfig.SlaveMode = TIM_SLAVEMODE_TRIGGER;
sSlaveConfig.InputTrigger = TIM_TS_TI2FP2;
if (HAL_TIM_SlaveConfigSynchronization(&htim4, &sSlaveConfig) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
dsctsam
发表于 2020-4-21 17:40:29
丰富的资源!
已收藏与支持了。
chengang0001
发表于 2020-4-22 09:20:48
已收藏支持
天师猫神
发表于 2020-4-22 10:53:45
mcboy
发表于 2020-4-22 11:12:15
支持啦
mcboy
发表于 2020-4-22 11:15:07
下载啦
页:
1
2
3
4
5
6
[7]
8
9
10
11
12
13
14