首页 > 其他分享 >最近使用stm32遇见的一些坑

最近使用stm32遇见的一些坑

时间:2025-01-07 20:21:47浏览次数:7  
标签:htim8 HAL IO Start stm32 TIM 最近 遇见 CHANNEL

遇见很多无厘头的问题让人实在头疼

本来自己画一款控制板,开心焊接完后发现stlink用不了,本来之前一直使用usb typeC接口下载程序,后续因为特殊需求修改为只有stlink接口,但是发现用不来,不论如何修改stm32 cubeprogrammer都无法连接,一直出现no stm32 target found。
试过的方法有长按复位,长按boot, 下载状态长按复位, 下载状态长按boot,偶尔出现几次成功,但是成功得没有什么可重复性,最后更换了一个stlink,发现还有会出现问题,最后将频率降低后才连接上,可能是因为自己使用的杜邦线有点长?

2.IO输出不对

这个问题一般使用开发板可能不容易遇见,我是自己画的PCB,有自己特定的IO需求,但是你知道的,stm32的IO一个功能可能对应了好几个管脚,但是我设计原理图的时候就已经绑定好了IO管脚,但是在配置的时候,使用了默认的IO管脚,导致我在下载完程序过后,我希望的排针没有输出期望的波形,一直在反复修改代码,新建工程,始终不尽人意,最后发现是在CubeMx里面配置的IO和我设计原理图时的IO不一致,结果导致了这种乌龙情况,当时还以为自己原理图PCB设计错了, 但是仔细想想不至于如此,再次核对后发现是stm32可以进行IO管脚复用或者说一个功能可以使用多个管脚的某一个实现功能,自己画板的注意一下。

3.代码顺序

reference : https://blog.csdn.net/m0_75041317/article/details/144436904
根据这篇文章实现了PWM的移相控制,但是自己也是调试了好久,最后发现代码顺序也极为重要,否则不按照期望情况进行输出。
这是最终的代码:

	HAL_TIM_PWM_Start(&htim8, TIM_CHANNEL_1);
	HAL_TIMEx_PWMN_Start(&htim8, TIM_CHANNEL_1);

	HAL_TIM_OC_Start_DMA(&htim8, TIM_CHANNEL_2, ccr_ch2, 2);
	HAL_TIM_OC_Start_DMA(&htim8, TIM_CHANNEL_3, ccr_ch3, 2);
	HAL_TIM_OC_Start_DMA(&htim8, TIM_CHANNEL_4, ccr_ch4, 2);

	HAL_TIM_OC_Start(&htim8, TIM_CHANNEL_2);
	HAL_TIMEx_OCN_Start(&htim8, TIM_CHANNEL_2);

	HAL_TIM_OC_Start(&htim8, TIM_CHANNEL_3);
	HAL_TIMEx_OCN_Start(&htim8, TIM_CHANNEL_3);

	HAL_TIM_OC_Start(&htim8, TIM_CHANNEL_4);
	HAL_TIMEx_OCN_Start(&htim8, TIM_CHANNEL_4);

最开始的时候我的DMA开启在PWM开启之前 或者在最后 结果都不太对,只能夹在中间才有效。

标签:htim8,HAL,IO,Start,stm32,TIM,最近,遇见,CHANNEL
From: https://www.cnblogs.com/tiruo/p/18658304

相关文章

  • 【江协STM32】10-1 I2C通信协议
    1.I2C通信I2C(InterICBus)是由Philips公司开发的一种通用数据总线两根通信线:SCL(SerialClock,串行时钟线)、SDA(SerialData,串行数据线)同步,半双工带数据应答支持总线挂载多设备(一主多从、多主多从)         2.硬件电路所有I2C设备的SCL连在一起,SDA连在一起设......
  • stm32cubeide usb cdc hid
    STM32CubeMX系列教程25:USBDevice-STM32CubeMX系列教程微雪课堂本章不打算详细讲解USB的协议,本章只是介绍如何通过STM32CubeMX软件生成应用程序。在看本教程之前建议先看ST官方关于USB的培训视频,示例 http://www.stmcu.com.cn/videos.html 一、USB简介    ......
  • STM32F407ZG移植FreeRTOS(在有LVGL的基础上进行移植,附源码)
    目录1.准备资料1.1FreeRTOS源码获取1.2基础工程获取1.3精简FreeRTOS源码2.移植步骤2.1添加FreeRTOS源码2.1.1添加源码2.1.3添加路径2.2.添加FreeRTOSConfig.h配置文件2.2.1生成FreeRTOSConfig.h文件2.2.2配置FreeRTOSConfig.h文件2.3修改系统文件2.3.1修改sys.......
  • 【235. 二叉搜索树的最近公共祖先 中等】
    题目:给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖先表示为一个结点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树:root......
  • STM32 单片机 练习项目 LED灯闪烁&LED流水灯&蜂鸣器 未完待续
    个人学习笔记文件路径:程序源码\STM32Project-DAP&DAPmini\1-1接线图                        3-1LED闪烁图片新建项目新建项目文件选择F103C8芯片关闭弹出窗口拷贝资料在项目内新建3个文件夹Start、Library、UserStart文件拷贝从......
  • STM32-笔记36-ADC(模拟/数字转换器)
    一、什么是ADC?        全称:Analog-to-DigitalConverter,指模拟/数字转换器。        ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁。12位ADC是一种逐次逼近型模拟数字转换器(0~4095(2^12))。它有多达18个......
  • STM32烧写失败之Contents mismatch at: 0800005CH (Flash=FFH Required=29H) !
    一)问题:用ULINK2给STM32F103C8T6下载程序,下载方式设置如下:出现下面两个问题:1)下载问题界面如下:这个错误的信息大概可以理解为,在0x08000063地址上读取到flash存储为FF,但实际上应该写入08H,即校验时读取到数据与实际写入的不符。2)在DEBUG调试的时候,出现如下问题:调试的时候......
  • STM32-笔记33-Wi-Fi遥控风扇项目
    一、项目简介        电脑通过esp8266模块远程遥控风扇。PC端的网络调试助手(以服务端的模式连接客户端的esp8266)二、项目实现复制项目文件36-编程实现ESP8266连接TCP服务器重命名为:38-wifi控制风扇项目重命名为fan加载文件main.c#include"sys.h"#includ......
  • STM32CubeMX输出报错“but MDK-ARM V5.32project generation have a problem.”
    前言笔者在使用STM32CubeMX+git协同开发时,从仓库拉取的STM32CubeMX工程使用STM32CubeMX输出代码时报错butMDK-ARMV5.32projectgenerationhaveaproblem。但本地新建一个工程可正常输出。使用的软件版本为●java:23.0.1●STM32CubeMX:6.13.0参考网上其他人分享的方法,......
  • STM32:OLED(显示屏)开发基础
      思路:了解OLED相关资料----配置参数(OLED底层驱动移植)---编写代码【含例题】---烧入开发板 一、了解OLED相关资料1.什么是OLED?全称:OrganicLight-EmittingDisplay(有机发光二极管),其作用能将电能直接转化为光能的半导体器件,属于电流型的有机发光器件。2.OLED的四个......