自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 platformIO STM32 upload-“Failed to init device.”问题解决

这样看来貌似串口下载也很不方便,还要重新拔插,但我开发板原理图上应该是有一个自动下载程序的,我就把BOOT0的键帽拔掉了,效果还算可以。因为发现自己的32板子有带自动下载功能,platformIO也支持串口下载,但一直提示这个问题。把BOOT0接3.3V,BOOT1接GND,再点击下载(之后接回去复位也可以显示)这是我从一个有相同问题的人从他尝试过的解决方案中的找到的。我的platformIO.ini。官方所支持的下载协议。

2024-07-14 13:42:09 234

原创 git commit一直有个->

解决办法:可能是输入有误还是啥吧,可能缺少了一个双引号,然后它就一直等待你输入双引号,我也是从别人那搜来的。输入双引号之前我也做了各种尝试,以为是进入vim编辑器了,哈哈哈。git使用的不多,第一次遇到这个问题也是很奇怪。

2024-04-12 17:20:26 184

原创 _数的倒数

这原本是个简单的问题,想求一个数的倒数,例如123的倒数就是321,但是在其中也遇到了很多问题,如vscode窗口闪退,打不开窗口,自己粗心大意没有加return,不清楚scanf的返回值。

2024-03-30 13:51:02 323

原创 ADshift+空格,一个奇怪的解决方案

原因:win10的输入法有个兼容性设置,我用source insight老是会卡死,按他们说的把输入法改成老版本了,但是这好像导致使用AD(我是20版本)就出现了一些问题,反正改过来就是了。我也是shift+空格不能使用,也试了他们说的先用shift+R,再按shift+空格,也去设置了看了下是不是按键被占用了,但结果都不行。如果你使用了AutoHotkey这种脚本,像我就用了一个会占用空格的脚本,也是没办法使用的,但这次不是因为这个。

2024-03-30 13:33:22 546

原创 RTOS中的延时

今天在做RTOS门禁时,想测试RTOS能不能正常使用,就想创建两个LED任务,让他们错开闪烁,但是没有任何效果,原因就是忘了RTOS中的systick定时器被占用了,原来的delay函数不起作用了,而且后续想在任务调度开始之前用us级延时,但程序卡死。

2024-03-28 18:37:57 948 1

原创 ESP8266_01和串口

我看了几篇ESP的文档,个人觉得WIFI通信就是在WIFI连接用户这个圈子中,跟别人建立通信,ESP可以建立圈子,也就是作为热点的AP模式,也可以进别人的圈子,就好像我们是一个圈子的才有共同话题,也就是下面要说的ESP的AP模式和STA模式,在一个圈子是前提,至于是你开热点还是蹭别人的,跟通信的主次无关(跟STA和AP选择无关,跟客户端服务端选择有关),你开了热点也可以作为客户端,你蹭别人的也可以作为服务端,我试了我这个模块是报错的,没找到,查IP地址的话用AT+CWSAP?照着下图填应该就可以了。

2024-03-21 13:19:00 1486 1

原创 AD学习笔记

ctrl+m封装中测距,说到测距,让两个焊盘重合,然后选中上面的焊盘按M通过XY移动很方便。PL画线,画丝印,老师说一般丝印选5mil,说到这个单位,按Q可以切换mm和mil。按住shift选中可以多选,也可以单独取消某个Tab感觉像是框选同类。ctrl+X剪切,只知道ctrlC和ctrlV,这个还是第一次知道。快捷键shift+E,切换电气栅格,不太懂。shift+X,shift+Y都是镜像翻转。shift+空格可切换滑县角度。

2024-03-17 20:36:11 410 1

原创 AD如何画出特殊形状的焊盘

但是没有阻焊层,我们把一开始的描边线条选中,切换到阻焊层,再按同样的方法绘制区域。然后再切换顶层,选中边缘还可以对线的宽度做更改。如何画出奇特形状的焊盘,先用线条描边。即可得到我们想要的焊盘形状。

2024-03-17 20:27:57 1090 2

原创 UART的发送与接收

代码数量较大,上文作者代码仓库有详细案例。

2024-02-18 11:57:58 409 1

原创 SysTick延时遇到的问题

在做避障小车时自己原先的延时函数会导致模式切换会卡住,没响应,换了正点原子的就可以正常运行,所以记录一下。

2024-02-07 15:44:33 417 1

转载 用键盘移动光标(转载)

敲代码的时候想要移动光标,就得把右手从键盘上移开,去用鼠标操作,这样子效率太慢,所以这篇文章是推荐别人的一个插件(我没做太多了解,应该有更好的方法),需要配合AutoHotKey使用(没那么麻烦,安装好就可以,主要是运行插件,双击即可)下面是原链接,为了方便以后查看我把插件和主要操作方法也贴在下面。

2024-02-02 21:09:15 40

原创 32单片机的位带操作

了解如何实现之前,先了解单片机寄存器地址结构,寄存器地址是往下增长的,位也是,每个寄存器地址之间间隔4(有些寄存器人为划分为16位),也就是一个“1”代表1个字节。正点原子做的例程比较系统,当我们只需要对某一个IO口操作完全可以直接算出它的地址,直接一个宏搞定(就是我偷懒)位带操作就是让32单片机可以像51单片机一样对GPIO口进行位操作,例如PA_1=1;,下图是文档中的描述。位带别名区起始地址比位带区起始地址大0x0200 0000,之后每一个Bit膨胀为32位的,也就是。

2024-02-01 18:34:10 468 1

原创 超声波测距

给超声波模块发送一个高电平脉冲(维持10几us),它会返回一个反馈信号,信号的高电平时间*声速=2*与障碍物之间的距离 每一次测距之间要间隔200ms 定义两个标志位,STA和VAL,STA下图有说明,VAL用来保存CCR寄存器的值开启定时器更新中断和输入捕获的对应通道中断,即IT_update和IT_CCxupdate用来记录反馈信号大部分的时间,CCx记录反馈信号的开始和结束和余下的时间,就是VAL的值对反馈信号的处理思路如下图,可以结合代码理解TIM_OC2PolarityConfig(TIM2

2024-01-30 18:49:46 404 1

原创 Keil调试——GPIO口输出的查看

前言:在做小车时,看到老师的Debug可以在逻辑分析仪添加PORTA.x添加I/O口查看数据输出,这样可以很方便看PWM波,但是自己调试添加却报错,在网上找了下,很快就发现了教程。如图所示,要去改设置,我就拿那个小车老师的笔记教程修改。Keil一开始默认的设置(模拟仿真要选左边)

2024-01-22 00:03:47 1562

原创 RTOS_BASEPRI_中断屏蔽寄存器

前言:在学正点原子的RTOS中断管理一章时,两个优先级不同的定时中断,一个为6,一个为4,调用AP1函数portDISABLE_INTERRUPTS应该会关闭优先级为6的中断,但现象并不是这样,以下是原因。(该定义在FreeRtosconfig.h中,95是我改动了的,原来是191)它的说法是等价于优先级11,这就跟老师说的不太一样,所以我想改过来,但是我并不知道BASEPRI寄存器的位说明,然后去查。正点原子老师说RTOS管理的中断优先级是5-15,关闭中断会屏蔽优先级比5低的中断,我查看函数定义得到。

2024-01-03 12:04:57 431 1

原创 C——字符输入函数

特点:会舍弃换行符,这个函数会在内存泄漏时异常终止,显得更安全,但是如果不想让程序异常终止这个函数还得要搭配处理函数,比如判断返回值是不是 NULL空指针,并要求重新输入(这个我也不知道咋写处理函数,好像没我说的那么简单,VS会直接给我报错),把字符串地址给name1,这个函数更像是单纯读一个单次,因为它从第一个非空白字符开始读入,然后碰到第一个空白字符停止(如空格,换行符,制表符),我用的也不会那么深,就这么稍微说说。参数:%s是转换说明,在s前面加数字即可以限制读入的数目,如%5s,%10s。

2023-12-17 21:09:41 76 1

原创 stm32学习笔记——ADC

还有很重要的一点,规则组的数据寄存器只有一个,虽说是32位,但是ADC1,ADC2共用的,对于一个ADC1只有一个放数据的地方,而注入组有四个放数据的地方(真过分),也就是说,用规则组转换多个数据要跟DMA配合(手册上是这么说的”有三个中断标志,规则组转换完成,注入组转换完成,超过上限低于下限(狗叫),这里应该注意下,EOC和JEOC应该是两个组的所有输入全部转换完成才置标志位,而非完成一个就置一次,模拟看门狗超过上限,低于下限输出的是同一个中断,不是两个,或许在中断里判断下值可以完成更细致的操作(

2023-12-10 14:25:10 1262 1

原创 stm32学习笔记——TIM输入捕获

图中圈中的地方一块是对输入信号的处理,另一块可以说是输入捕获的工作原理,先来说工作原理,当输入信号处理好后来个触发信号,CCR寄存器会将CNT计数器的值锁存在寄存器中(并且可以依靠主从触发模式清空计数器),这样就可以达到测量频率和占空比的目的了。那就用两个CCR寄存器,一个受输入信号上升沿控制,上升沿清空计数器并且锁存计数值,另一个受输入信号下降沿控制,下降沿来了不会清空计数器只会保存计数值,那么回到正题,如何获得PWM波的频率和占空比呢,有两种方法,这两种方法分别是。再说对输入信号的处理包含哪些。

2023-12-04 11:58:13 319 1

原创 stm32学习笔记——TIM输出比较

PWM广泛应用在电机调速等领域,PWM与函数发生器,与直流电源调速这之间的区别以后有空再研究,这是我目前所知仅有的可以产生任意频率,任意占空比的脉冲波发生器,(其实说任意频率有点错误,PWM波的频率一般不能太低吧)可以看到,它其实是在TIM这块的右下部分,一共有四个通道,但四个通道的PWM波的频率是相同的,毕竟共用一个计数器嘛,那么四个通道,输出引脚在哪呢。关于图中的3,就是两个寄存器的值比较然后执行相应的事件,这个RTC的Alarm闹钟也是类似的,相应的事件也就如PWM模式描述所说。

2023-11-30 19:03:14 91

原创 stm32学习笔记——TIM定时器中断

时基单元由16位的预分频器,16位的计数器,16位的重装寄存器,操作步骤大概为时钟经过分频器分频,然后每来一个时钟计数器计数,当计数器溢出产生中断请求和更新事件,重装寄存器给计数器赋初值(向上计数不存在),那么我们就具体来论述每一个部分。外部时钟只有一个时钟源,就是ETR引脚,我只知道TIM2的ETR引脚是PA0,其他的TIM就不知道了 ,由图看来,要配置外部时钟模式2,需要配置ETR引脚信号的极性选择,分频系数,滤波器。内部时钟由系统时钟提供,为72MHZ,内部时钟代码调用。

2023-11-29 15:14:52 915 1

原创 stm32学习笔记——EXTI

NVIC是一个中断处理端口吧,负责管辖STM32所有的中断申请,提到NVIC就不得不提到中断优先级,NVIC为每个通道提供了0~15,16个优先级,也就是4bit,数字越小优先级越高,优先级一般由抢占优先级和响应优先级共同决定,抢占优先级高可以把别人踢下台(中断嵌套),响应优先级高可以强行插队(但要等前一个中断执行完),而这两个优先级通过分组方式确定各分配多少。NCIC_IRQChannel就如第一张图所示,第一张图展示的只是EXTI的中断通道,不代表全部。有些时候需要清除多个标志。

2023-11-27 20:10:57 40

原创 stm32学习笔记——BKP and RTC

对BKP和RTC的访问——由于在复位后,对RTC和BKP的访问被禁止了,我们需要操作两个步骤 1.先开启PWR和BKP的时钟 2.配置PWR_CR中的DPB位使能对RTC和BKP的访问。先记备份存储器的功能,其他的以后需要再看,备份存储器就把它当作一个掉电不丢失的小型ROM。

2023-11-27 10:53:11 190

原创 stm32学习笔记——DMA

DMA像是一个管道,这根管道用于传输数据,管道两端连接发送端和接收端,传输方向不固定可自由变更,接下来分三个部分介绍DMA。

2023-11-26 17:02:38 194

原创 STM32学习笔记——USART

USART中有一个12位(8位整数,4位小数)的波特率发生器,配置波特率通过配置BRR寄存器即可完成,波特率的公式Fck(APB2时钟=72MHZ,APB1时钟=36MHZ) /(16*DIV),DIV就是由BRR决定的,DIV是一个浮点数,小数部分由BRR的低四位决定,即一位十六进制数,整数部分由BRR高四位决定,即两位十六进制数(话说,这个16让我在想,这个波特率是噪声检测那里的一位间隔还是数据帧的一位间隔)大致了解USART的应用之后,去关注它的时序,怎么发送,接受一个字节。

2023-11-23 21:18:04 56

用键盘移动光标的插件,的

用键盘移动光标的插件,的

2024-02-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除