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

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

st-img
chrome
st-img
firefox
st-img
safari
st-img
ie8及以上
shequ.stmicroelectronics.cn
  • ST意法半导体官网
  • STM32中文官网
  • ST全球论坛
登录/注册
  • 首页
  • 技术问答
  • 话题
  • 资源
  • 创客秀
  • 视频
  • 标签
  • 积分商城
  • 每日签到
zhjb1

zhjb1

 

回答数 0 关注数 0
关注 私信
  • 动态99
  • 提问
  • 回答0
  • 创客秀 0
  • 分享 0
  • 关注0
5 回答

STM32F401用MXCUBE生成time工程问题

STM32CubeMX
zhjb1 zhjb1 回答时间:2025-3-18 10:26

您好 我不太会用这个BBS,刚才编了一副示意图发上去了,我自己都看不到此文在哪里?也不知道图片上去了没有,有点晕。 非常感谢您的回复,并且非常有帮助。离目标还差一点点,恳请希望得到您的指点: 我只需要在 两次外部信号触发之间完成计数,重复若干次,最后计算平均值,结束。 外部信号可以是IO口的沿触发,也可以是TIM4或其他的TIMx,在F401RCT6中,T4开始没有外部输入,但可以作为内部触发信号控制TIM2的开始计数和结束计数。 再次表示感谢

赞0
7 回答

当有一外部信号(上升和下降沿触发),用timer计测脉冲间隔的问题,要给采用那种触发:ITRx、Gate、还是其它那种方式最好,响应最快,谢谢

STM32F4
zhjb1 zhjb1 回答时间:2025-3-20 17:12

这个问题暂时解决了。首先感谢 xmshao的一篇推荐文章,翻阅后对从CUBEMX开始设置项目,其中tim的选设有了一定了解,有东西大家分享吧。 按照文章中的选设(文中是TIM4,本人采用的是STM32F401RCxx只有T1-T3有外部触发其余的tim只能内部触发)设定Timer2为外部触发产生事件。T1,T3一已在系统中设定为PWM,当然曾考虑到T2具有32为分辨率作为外部触发计数具有独到优势。 具体设置可以参考 xmshao 给的文档此处不再重复,仅仅将我在试验中的测试结果做一描述。先声明,绝对不是最佳方案,仅仅是实现了需要的功能,如此而已。当让后边还会描述进一步想做何用,急需的实验抽空再做了。 本实验希望能对外部信号进行中断计数,“单位”时间数脉冲数,能读一次即可多测更好! CubeMX设置完成后并不能立即实现需要做一些代码设置。 我的MCU是STM32F401RCxx,主频最高支持84MHz最后设在了外部25MHz晶振,PLL设置到Core Clock为84MHz,许多计算按照文章带入实际上不准确,误差非常大——不是一倍几倍,只能采用测试的方法——当然与找不到这款芯片的用户手册有关——官网和许多技术网站只能搜到几乎一样的技术手册。想搜相关的F4系列的用户手册也无果,这是诟病。 首先设置main前部的time2的初始代码: HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_1); HAL_TIM_IC_Start_IT(&htim2,TIM_CHANNEL_2); __HAL_TIM_ENABLE_IT(&htim2,TIM_IT_UPDATE); __HAL_TIM_CLEAR_FLAG(&htim2,TIM_FLAG_TRIGGER); 后两句也可以先不写。 接着设置tim.c中TIM2中的一句进行测式: sSlaveConfig.InputTrigger =TIM_TS_TI2FP2; 这一句实在CubeMX设置完成后自动生成的,我用了两个Tim4,Tim11想用他们来产生TI2FP2信号,结果无果,既然这种方式不行,那么就采用自己触发采样计数,遍历TIM_TS_TI2FP2,结果搜到了触发定义变量(有用的2个): TIM_TRGO_OC1; TIM_TRGO_UPDATE; 经过测试两个都能触发tim2进行计数,相对而言前一个函数误差最小。于是更改stm32f4xx_it.c函数中关于time2的中断向量函数,原始如下: /** @brief This function handles TIM2 global interrupt. / void TIM2_IRQHandler(void) { / USER CODE BEGIN TIM2_IRQn 0 */ / USER CODE END TIM2_IRQn 0 / HAL_TIM_IRQHandler(&htim2); / USER CODE BEGIN TIM2_IRQn 1 / / USER CODE END TIM2_IRQn 1 / } 只需要在用户代码中加入一段中断处理函数即可,本思路是:第一个出发沿开始计数,之到第二个触发沿终止计数,为了省事和技术准确(不因中断二占用计数时间),在中断函数中永远累加计数,在中断处理中完成求此时间间隔的计数值,结果效果比预想的好,加入的代码如下: / USER CODE END TIM2_IRQn 1 / if(__HAL_TIM_GET_FLAG(&htim2,TIM_FLAG_UPDATE)!=RESET){ //__HAL_TIM_CLEAR_IT(&htim2,TIM_IT_UPDATE); __HAL_TIM_CLEAR_FLAG(&htim2,TIM_FLAG_TRIGGER); t2Cnt++;if(t2Cnt>1){t2Cnt=0;kk=ttc;ttc=0;} } ttc++; / USER CODE END TIM2_IRQn 0 / HAL_TIM_IRQHandler(&htim2); / USER CODE BEGIN TIM2_IRQn 1 / 其中ttc是tim2每产生一次沿中断,ttc累加一次; 代码首次运行t2Cnt=0;中断处理函数是首次沿中断,将ttc清0,t2Cnt++;(此时为1) 带第二次沿中断,t2Cnt+1>1, 将ttc的值赋予kk,同时ttc清0;。kk是送LCD显示和计算的计数值。 经过测试,在测试99.99KHz以及1KHz的赔率下的误差都小于1/1000。 美中不足的是,多次循环采样中LCD现实的数据会有个位数的小跳变。当然与偷懒有关——kk开作为按键的测试值显示在LCD上。 证明此方案技术可用。 再次感谢 [xmshao](https://shequ.stmicroelectronics.cn/space-uid-1105.html !

赞0
8 回答

SysTick问题

未设置标签
zhjb1 zhjb1 回答时间:2020-4-23 20:17

04.void SysTick_Handler(void) 05.{ 06.  /* USER CODE BEGIN SysTick_IRQn 0 */ 07. 08.  /* USER CODE END SysTick_IRQn 0 */ 09.  HAL_IncTick(); 10.  /* USER CODE BEGIN SysTick_IRQn 1 */ 11. 12.  /* USER CODE END SysTick_IRQn 1 */ 13.} 在这里面定义了一个全局变量++,也做过外部函数跳转(例如闪个LED),但都不执行!

赞0
18 回答

外部晶振会导致无法下载程序

未设置标签
zhjb1 zhjb1 回答时间:2020-4-10 15:32

LZ的程序里,有没有修改SWD两个引脚的功能?如果是,那只能通过短接reset电容来下载

赞0
5 回答

STM32Gxxx系列的有像 STM32CubeMX开发工具吗?

开发工具 STM32CubeMX
zhjb1 zhjb1 回答时间:2019-10-29 16:30

通常规律上看,这是新产品一定是新版本才会支持的,保持更新就好了

赞0
33 回答

板卡领回家丨STM32G4 邀您评测申领名单新鲜出炉咯

STM32G4
zhjb1 zhjb1 回答时间:2019-10-29 16:38

看了有没有完成的,是否将板卡给我,我来继续完成至少要求?谢谢

赞0
10 回答

swd 4线模式下载异常求解(Error: Flash Download failed - Cortex-M3)

未设置标签
zhjb1 zhjb1 回答时间:2019-1-11 07:15

korry 发表于 2019-9-9 21:46 我是多次插拔jlink就好了,一脸懵逼 接触不良,重复插拔不接口也不太好呀

赞0
8 回答

TFTLCD无法显示的问题

未设置标签
zhjb1 zhjb1 回答时间:2018-12-31 17:06

cllmxdsdo 发表于 2019-1-1 21:19 解决了,卡死在printf那里,我注释掉就OK了 没有用串口,改的程序?这个现象我也出现过。

赞0
7 回答

STM32CubeMX获得ADC的采样数值问题

STM32CubeMX
zhjb1 zhjb1 回答时间:2025-3-18 12:47

这个问题已解决。 将采样后加个延时再读取数据就一切正常了。 按照采样通道数量(本实例5个,4个外置,1个内部芯温)采用while(tt--)的方式,tt为130正好,150可靠一些。

赞0
27 回答

第六期:是什么让你坚持IAR,放弃了KEIL

未设置标签
zhjb1 zhjb1 回答时间:2018-11-8 15:47

楼主你好,我现在两个都在用,  今天换了EWARM-CD-8321-18631.exe    ,要像keil5安装芯片的pakcet,这个包去哪里下

赞0
9 回答

基于stm32cubemx的FSMC的TFTLCD彩屏显示的实现

未设置标签
zhjb1 zhjb1 回答时间:2019-10-17 10:44

楼主解决了吗?我也遇到这样的问题

赞0
139 回答

【2018.8.2】签到:STM32L151 RTC 寄存器无法写入

STM32L1
zhjb1 zhjb1 回答时间:2018-8-3 08:33

签到

赞0
12 回答

从Mbed到出Nucleo-rtos-basic到Keil 5,编译问题

未设置标签
zhjb1 zhjb1 回答时间:2018-7-20 15:03

遇到同样问题,导出的不能编译。。。

赞0
9 回答

STM32Fxxxx芯片的焊接问题

未设置标签
zhjb1 zhjb1 回答时间:2018-7-17 15:10

谢谢各位网友的关注和回答!已经找到解决问题的方法了。兆易创新也生产兼容STM32的芯片,查了资料几乎完全兼容。正准备尝试使用兆易的GD32Fxxx的芯片。查资料,有GD32F1xx、GD32F2xx、GD32F3xx、GD32F4xx的,不考虑M7或以上的应该够用了,PCB可能也不用改,具体在仔细看看他们的内部区别,如果没有,直接用现成的PCB。谢谢各位!

赞0
12 回答

自己画的SWD下载电路没有反应

未设置标签
zhjb1 zhjb1 回答时间:2018-7-6 17:49

the_newbie 发表于 2018-7-7 00:05 这个版本是不是很尴尬. 如果只是调试STM32F103的话,也够用了。 我这偶尔可能会试用一下新的器件,所以不升级不行。 用的时候再升级也可以啊

赞1
23 回答

这些支持GUI的STM32摆在你面前,该选择谁? | 文末有惊喜

GUI
zhjb1 zhjb1 回答时间:2018-7-4 09:32

我就想知道有没有清晰版, 还没有声音。。。

赞0
9 回答

STM32F103ZET6_PD_5引脚的问题

STM32F1
zhjb1 zhjb1 回答时间:2018-6-22 11:55

zhjb1 发表于 2018-6-22 11:55 您好!非常感谢您的指导和帮助!已经确定芯片都是坏的。但问题是,我用J-LINK来测试目标芯片居然他也认为 ... 要不,走正规渠道买几片? 能看出你的是不是拆机片吗? 像芯片的问题,这完全不是技术问题,真能把人折腾死

赞0
12 回答

STM32驱动数码管

未设置标签
zhjb1 zhjb1 回答时间:2018-6-19 09:53

其实,你要干的事有二件: 一是MCU和TM1638的通信问题, 二是数码管要显示的数据 如果解决了通信问题,你的数据也正确,那这个数码 管就算是驱动成功。 如果是通信失败,那数据就别谈了。

赞0
2 回答

STM32F103ZET6_PD_5引脚的问题

STM32F1
zhjb1 zhjb1 回答时间:2018-6-18 08:02

feixiang20 发表于 2018-6-18 02:44 是不是芯片问题啊,每块都尝试下看看 真是绝好主意,手头一块就都没有了。谢谢,您可以这样试。

赞0
39 回答

SPI通信出现时钟紊乱

未设置标签
zhjb1 zhjb1 回答时间:2018-6-21 17:35

bugyang1 发表于 2018-6-25 17:53 波形图有点小,放大点看下 放大的就是看的是小局部的了,看不全

赞0
下一页
zhjb1 zhjb1


阅读作者更多的帖子

所在话题

参与活动

  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16