
单片机
文章平均质量分 83
走错路的程序员
爱程序,爱技术.更爱老婆和骇子.
展开
-
STM32CubeIDE无法连接STLinkV2的一个可能原因
前些日子买了个新的STLINKV2 , ( 老的被我家猫猫一泡尿送上西天了)刚开始还挺正常的, 后来有一天就突然间发现无法调试了.网上尝试了各种方法, 各种操作. 百度了好久. 最后好在我自己研究出来了.我使用的是 STM32CubeIDE 这个开发工具调试选项如下图其它的不需要修改, 然后点击下面的apply 按钮, 然后调试Debug, 提示 No STLink 如下图后来尝试了下载ST-LINK Utility 用它是可以正常连接STLink的, 然后也能正常进行升级操作.原创 2023-03-09 22:13:40 · 7123 阅读 · 0 评论 -
STM32频率测量
频率测量是个最基本的且常见的工业需求.但是这种简单的需求却不是那么的好实现. 总体来看, 目前的单片机还是有很大的改进空间.很少有频率测量能够覆盖所有的频率范围.而使用 STM32F103 性能有限.根据待测频率, 我分成低中高, 三个阶段. 分别对应着3种不同的测量方法.测量方法, STM32 时钟计数器的输入捕获中断函数测量法.测量原理输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32 的输入捕获,简单的说就是通过检测 TIMx_CHx 上的边沿信号,在边沿信号发生跳变(比如上升原创 2022-12-07 10:41:56 · 10486 阅读 · 2 评论 -
STM32F303RE 四个ADC同步规则采样
这里额外插一句, 我觉得 , 学习STM32 需要掌握的知识除了c语言之外,还需要手边放一个 [寄存器级别的 参考手册], 这个参考手册是芯片设计人员写给程序开发人员看的, 里面非常非常详细的介绍了每个寄存器的作用, 甚至还写了使用的注意事项和方法. 能看懂这个手册基本上就会用stm32了…另外这里要分享一个好东西, STM32CubeIDE 有寄存器查看窗口, 好像Kiel 也有. 能够查看寄存器的当前值, 基本上再根据寄存器的参考手册就知道当前的机器内部运行情况 . 而不是瞎猜了.原创 2022-09-15 00:42:13 · 2823 阅读 · 9 评论 -
STM32 HAL库DMA串口发送数据参考文章
随便就能看出来, 我界面上的修改, 对应的生成了那些代码. 也能很容易的看出来那些代码是工具生成的, 那些是手工写的. 比起前端项目, 单片机的代码量真的是少的太多了. 所以源代码维护的工作量还是可以接受的…stm32f3xx_it.c 文件中的内容,找到你的串口对应的DMA通道的中断, 添加下面一段代码. 就可以了. 这么做主要是为了完成状态的闭环, 具体说明在第二个参考文章中讲了.不过原文章的代码似乎有问题. 后来参考了第三骗文章的代码, 跑通了.main.c文件中的主要代码.原创 2022-09-09 18:48:33 · 740 阅读 · 0 评论 -
RK3399Pro的问题记录
问题记录.pytorch的模型一直无法加载这一部是在模型保存的时候同时产生的.普通的pytorch 直接报错的权重参数模型,rknn并不能加载和转换.后来看到sdk中的示例代码才发现需要 torch.jit.trace() 才行. 这一步要求在保存模型的时候同时转换成标准的模型… 代码如下,torch2jit.py# -*- coding: utf-8-*-import argparseimport osimport shutilimport numpy as npfrom原创 2021-08-10 11:31:34 · 6551 阅读 · 4 评论 -
集成电路,微小电子元件焊接技巧
第一次做板子.由于自己对电路不是很懂所以请人设计的电路板… 我自己焊接的元件. 对于独立插接件都焊不好的我,上来就焊贴片元件. 真是如痴如醉,欲哭无泪… 10个板子焊了2个星期. 自己焊的好不好还不知道, 反正各个颗粒饱满,没有虚焊. 又是热风焊,又是电烙铁的. 10个板子焊完,自己也熟练了.额外分享一下焊接技巧, 贴片小元件,例如电容,电阻之类的 要先固定一个引脚,然后再焊另外一个.IC芯片这种引脚特别细的又特别多的,第一步要先在板子上弄一层薄薄的锡,不要粘在一起. 不要凸起太多.第二步冷却后,原创 2020-08-31 08:57:47 · 3375 阅读 · 0 评论 -
STM32CUBEIDE USB下载总是连接不上 总是USBD_BUSY
开发的时候总是在调用这个函数的时候发现 //总是会卡在return USBD_BUSY; uint8_t CDC_Transmit_HS(uint8_t* Buf, uint16_t Len){ uint8_t result = USBD_OK; /* USER CODE BEGIN 12 */ USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_...原创 2020-04-26 23:01:47 · 4305 阅读 · 7 评论 -
stm32cubeide 编译的时候总是报错. make: *** No rule to make target `main.elf', needed by `DPHH.elf'. Stop.
最近用 Stm32cubeide 做小项目.开始的时候比较随意,文件随便放.后来为了整理比较乱的项目目录所以改了一下路径名称,移动了一些东西.后来再编译的时候就总是报错make: *** No rule to make target main.elf', needed byelf’. Stop.网上找过各种资料都不合适, 后来实在没办法了.1.把代码中比较重要的文件都复制出来备份好,然...原创 2020-03-15 11:56:57 · 7907 阅读 · 0 评论 -
STM32CubeIDE实现printf重定向输出到串口
搞了好半天,最后搞通了。感谢这位大神的指点https://blog.youkuaiyun.com/kyzb002/article/details/101100922串口怎么配置的就不细述了。只要在main.c文件中。 USER CODE BEGIN 0 之间加入下面这段代码即可网上有的文章只写了第二个函数 __io_putchar 却没写必须要重新定义 _write 函数这里是两个函数都必须实现...原创 2020-01-27 18:48:38 · 8568 阅读 · 7 评论 -
STM32 WARNING: T-bit of XPSR is 0 but should be 1. Changed to 1. 问题解决过程.
Stm32CubeIDE 代码生成好之后写入单片机却无法运行.一直报下面的错误. 最明显的一句错误日志是.Starting target CPU…WARNING: T-bit of XPSR is 0 but should be 1. Changed to 1.…Target halted (Vector catch, PC = 0xF3AF4804)从日志来看,貌似写入程序是没问题的,...原创 2019-12-15 19:11:56 · 6292 阅读 · 0 评论 -
unknown type name 'TIM_HandleTypeDef' 的一个原因
前几天由于电脑硬盘坏了, 项目文件突然间就打不开了 . 整个项目文件全部消失了. 幸好在软件的帮助下, 找了回来最主要的几个文件.于是重装电脑后, Stm32CubeIDE 新建了项目.ioc文件重新生成了代码. 然后把重要文件复制过来.然后Stm32CubeIDE 编译的时候发现报错. unknown type name ‘TIM_HandleTypeDef’ 用F3按键却能定...原创 2019-12-15 14:22:31 · 9349 阅读 · 2 评论 -
STM32 定时器1秒执行一次 计算频率 STM32CubemxIDE
今天发现定时器中断总是进不去.发现了2个问题一.生成的配置文件有问题需要点好几次NVIC中断,才能生成合格的代码. 生成的tim.c文件中应该有 HAL_NVIC_EnableIRQ(TIM2_IRQn);才能开启中断. 先确认下生成的代码有没有问题, 如果没有那么需要去勾上Nvic中断 再去掉.生成代码来回折腾几次就出来了.二 . 定时器开中断没有开启,定时器开中断默认是没有开启...原创 2019-12-09 21:54:29 · 9202 阅读 · 1 评论 -
STM32 串口调试日记
最近用stm32 做了 个小东西, 需要串口发送数据.用代码发送数据的时候怎么都不行 if(HAL_UART_Transmit(USART2,txbuf,sizeof(txbuf),0xffff) != HAL_OK){ int a=0; a = a+1; // Error_Handler();}这样写,的时候 huart->gState 一直是 HAL_UART_STAT...原创 2019-11-11 23:05:13 · 448 阅读 · 0 评论 -
STM32CubeIDE Jlink连接Connecting to target...ERROR: DAP error while reading DP-Ctrl-Stat register.
STM32CubeIDE Jlink连接STM32C8T6的 板子的时候,各种提示如果线没连接好 或者 SWDIO和SWCLK弄反了会提示Connecting to CPU via connect under reset failed.如下:Command line: -port 2331 -s -device STM32F103C8 -endian little -speed 4000...原创 2019-11-06 23:10:47 · 21027 阅读 · 2 评论 -
KEIL软件的Error: Flash Download failed - Could not load file '..\OBJ\Template.axf'解决思路
第一个知识点 axf是编译后生成的文件. 这个文件是用来写入单片机的. 如果不存在这个文件, 首先要看一下. 是不是有编译错误??? 编译错误肯定不会出这个文件的….第二个知识点, 这个文件的路径是可以指定的, 在Options for Target ‘Template’中的 User 选项 下设置After Build/Rebuild下Run#的路径,路径就选择Templ...原创 2018-06-10 17:55:02 · 122960 阅读 · 6 评论 -
STM32 定时器输出方波的频率与PSC以及CNT的关系
1.STM32的系统时钟最高频率是72MHZ 2.STM32的定时器TIM 的CNT计数值最大为65535 3.STM32的定时器TIM 的预分频 系数 PSC 的数值 = 72M / 定时器计数频率因为CNT最大值为65535 所以, 这里有个问题, 当定时器计数频率太高的时候, 例如72M的计数频率. 1秒钟最多有72000000个计数, 当计数到65535个的时候是 1098...原创 2018-06-18 10:32:10 · 15689 阅读 · 4 评论 -
STM32 定时器输出比较模式和PWM输出模式的区别
搞了好几天的定时器输出方波, 刚开始还行, 后来怎么弄都不行.. 我就郁闷了… 经过漫长的示波器观察和摸索, 才发现普通的比较输出模式和pwm模式的 寄存器的作用不一样. 比较输出模式这个模式的特点是4个通道的输出周期频率是一样的.. 频率周期由 预装载寄存器 ARR 的大小确定. Cubmx中叫Counter Period … 这个值越大输出频率越低.但是这个模式有个特...原创 2018-06-20 21:09:55 · 22543 阅读 · 12 评论 -
HC-05蓝牙串口透传模块。奇怪的经历
前些日子买了个HC-05蓝牙串口透传模块。 单片机用的stm32 连上蓝牙模块后怎么也发不了串口数据。 用电脑usb串口试了一下可以透传数据的。 于是我又把蓝牙模块接到stm32上。 不小心的是我把电源5v的线接到了rx,tx针脚上。完全接反了。 刚开始还没发现。 过了一会。 我发现我怎么都搜不到蓝牙。 然后一看蓝牙模块灯没亮。一摸。我靠。好烫。。。赶紧拔下来。。那个心疼啊。。。。原创 2016-07-17 12:35:29 · 7041 阅读 · 6 评论 -
使用 MWC V2.5 中的 MPU6050中的DMP进行计算姿态
玩四轴的都知道, MWC V2.5 飞控主板,板载陀螺仪传感器就是MPU6050.(不信你可以拿放大镜看). 而默认的MWC开源程序是自己读取MPU6050的原始数据,经过,自己的一套算法.算出来四轴当前的姿态. 所以,MWC的源程序里面也就没有使用 MPU6050的 DMP进行计算姿态. 笔者为了计算做产品. 研究了很长时间的MWC源程序始终没看懂. 后来不得已.最终在同事的劝说下.鼓起勇原创 2015-09-16 22:17:43 · 4534 阅读 · 4 评论