尚久龙
码龄5年
关注
提问 私信
  • 博客:293,553
    问答:26
    视频:1,318
    294,897
    总访问量
  • 162
    原创
  • 43,138
    排名
  • 562
    粉丝
  • 19
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:河北省
  • 加入CSDN时间: 2020-03-27
博客简介:

腹有诗词气自华

博客描述:
坚持每天努力一点点,水滴石穿!
查看详细资料
  • 原力等级
    成就
    当前等级
    5
    当前总分
    1,889
    当月
    45
个人成就
  • 获得629次点赞
  • 内容获得110次评论
  • 获得1,974次收藏
  • 代码片获得9,168次分享
创作历程
  • 53篇
    2024年
  • 108篇
    2023年
  • 1篇
    2022年
成就勋章
TA的专栏
  • STM32
    46篇
  • 模拟电路基础
    7篇
  • FreeRTOS学习
    2篇
  • solidworks
    11篇
  • 电路板的绘制
    11篇
  • 51单片机
    29篇
  • fiddler应用
    1篇
  • 小白学习C++
    2篇
  • C语言学习记录
    35篇
  • MicroPython K210单片机
    7篇
兴趣领域 设置
  • 编程语言
    c#
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

MOS管知识整理

其实我狗屁都不懂,什么都不会,就是直接用模拟软件来多次的尝试,直到能够成功模拟出我要的结果就好了,特此记录一下今天的模拟过程,防止以后再用到,不会又得从头模拟一遍了,这一遍就把大部分的内容记录下来,下次想用的时候就要快多了。好了,通过上面的实验就能证实我要想用STM32控制12V的通断就用NMOS管就比较合适,高电平时导通,低电平时截止。具体真正实际中还有什么问题,那就是以后的事了,发现问题在解决问题吧!(栅极G电压 > 源极S电压时, PMOS管截止,如下图)
原创
发布博客 2024.07.14 ·
381 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

用Python编写一个模拟usb摄像头的程序

昨天有个朋友找我要刷点政府的再就业的视频课,说是就是用浏览器打开固定的网站,然后用身份证号码登录,然后播放里面的视频,不定时的网页会通过usb摄像头拍照做人脸识别,就是这么一个简单的要求,叫我给想想办法,我就想用自动化来处理这个问题,说是每刷满一个人的学时就可以给我100元,我一想这个事可以啊!所以就着急忙慌的开始找办法解决这个问题,最终把虚拟摄像头的问题给解决了,操作浏览器的自动化还没有搞定,但是这个事估计黄了,昨天找完我,今天就没有在问过我了,感觉人家就是说了一下,我就开始搞了。
原创
发布博客 2024.07.11 ·
449 阅读 ·
2 点赞 ·
2 评论 ·
2 收藏

STM32利用FreeRTOS实现4个led灯同时以不同的频率闪烁

在没有接触到FreeRTOS时,也没有想过同时叫两个或两个以上的led灯闪烁的想法,接触后,发现如果想叫两个灯同时以不同的频率闪烁,不能说是不可能,就算是做到了也要非常的麻烦。但是学习了FreeRTOS后,发现要想同时执行几个函数还是很简单的一件事,虽然CPU是单核心的,这就好比是电脑编程中的多线程,这个函数执行1毫秒,那个函数执行1毫秒,就这样不停地切换,由于切换的速度相当的快,给人的感觉就是这几个函数在同时执行。这个工程创建好了,就不用每次都创建了,每次赋值粘贴重命名就好了,还是很省事的啊!
原创
发布博客 2024.07.06 ·
928 阅读 ·
11 点赞 ·
0 评论 ·
2 收藏

AH1117-3.3芯片使用记录

今天在新做好的电路板上测试电源时发现一个问题,那就是散热端不能接地,接地了就好像短路一样,芯片会热的厉害,当我把该引脚与地的所有连接都切断后,短路现象消失,特此记录一下,防止自己下次再犯同样的错误。
原创
发布博客 2024.06.30 ·
208 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

STM32的FreeRtos的学习

还要在stm32f10x_it.c文件中把刚刚宏定义的三个函数注释掉:107行 126行 135行。至此编译主函数下载到单片机中就能看到PC13的小灯在闪烁了。其他的地方我也不懂呢?今天第一天开始学习。至此所需要的文件就全部拷贝齐全了,接下来就是在工程中添加各个文件了。下载下来的是一个zip文件,解压缩了。1:声明一个任务句柄。2:创建一个任务函数。
原创
发布博客 2024.06.09 ·
1063 阅读 ·
3 点赞 ·
0 评论 ·
13 收藏

STM32手写超频到128M函数

按照上面的步骤操作后,系统时钟就按照我们的标准来设置了。其实这个操作没有什么太大的必要性,因为系统会自动为我们配置好的,研究这个过程是为了更深一步的了解STM32的工作步骤。学会了如何设置STM32的时钟频率,步骤比较详细,也很容易理解,就是视频教程不能跳着看,只能一节节的看,不然会知识不连贯,造成有些知识不理解,连续着看还是没有什么难度的。6:锁相环时钟配置:来源HSE1分频,倍频因子9倍(也可以改成自己想要的倍数,超频就改这里)3:设置AHB的时钟 1分频 72M。9:系统时钟选择锁相环时钟。
原创
发布博客 2024.05.25 ·
629 阅读 ·
3 点赞 ·
0 评论 ·
7 收藏

STM32手写寄存器的方式实现点亮LED灯

的老师讲的还是很到位的,能够学习到很多的细节之处,有时会感觉很啰嗦,但是不得不说确实很详细,只有这样对于真正的底层才能更清楚明白是怎么回事,原理很重要。写这篇博文的目的是记录我的练习过程中连续好几天犯得同一个错误,每次写都这样,而且找半天找不到哪里错了,必须拿着原来写的一行一行的对,才能发现问题,特此记录一下,下次再范同样的错误时就来看这篇文章吧!感觉这样就能快速的定位错误了。这个工程是很简单的,从0开始建立工程,自己手写寄存器映射,感觉对标准库的理解又前进了一大步。
原创
发布博客 2024.05.15 ·
524 阅读 ·
9 点赞 ·
0 评论 ·
1 收藏

STM32窗口看门狗的操作

上面的程序喂狗时间如果低于30ms和高于50毫秒,都会触发窗口看门狗复位,单片机都会自动重启,为了不叫单片机自动重启,请在合理的时间内进行喂狗操作。STM32的窗口看门狗的主要功能是,程序过早的喂狗还有太晚喂狗,都会触发单片机重启,就是有一个时间段,在这个时间段内喂狗才不会触发单片机重启。主要的步骤就是这么多了,其他的程序自己搞定,在程序中加入上面的四步就能实现窗口看门狗。T[5:0] - W[5:0] = 33 前面算的T[5:0] = 54。取整:(T[5:0] + 1) = 55。
原创
发布博客 2024.05.08 ·
691 阅读 ·
6 点赞 ·
0 评论 ·
6 收藏

STM32独立看门狗,实现单片机自动重启

今天学习了一下独立看门狗,看门狗的主要作用就是防止程序中有死循环或是不知道的bug,而造成在while循环中没有及时喂狗,程序就会控制单片机重启复位,从而不至于影响程序一直不能正常工作。为了验证是不是由看门狗引起的复位,特此调用rcc里面的检查独立看门狗的复位标志位,来显示不同的字符串,就可以看出来到底是手动复位还是看门狗复位了。第一步:开启LSI的时钟(打开看门狗会自动开LSI,所以这一步什么都不做)其实看门狗的应用也不是很复杂,主要分了4步,第一步还不用任何操作。
原创
发布博客 2024.05.01 ·
955 阅读 ·
10 点赞 ·
0 评论 ·
6 收藏

STM32进入待机模式,使用闹钟和WKUP唤醒单片机

第三:使用闹钟信号,唤醒待机模式 (闹钟到了就唤醒单片机,不需要其他设置,设置了 闹钟就可以了)可以开启WKUP(也是PWR的一个函数,这样PA0有上升信号也能 唤醒单片机)主要就是上面提到的三步,其他的程序还要自己来编写,需要闹钟或是WKUP功能时,选择性添加对应的代码就可以了。第二:进入待机模式 (调用PWR的一个函数就进入了待机模式)
原创
发布博客 2024.04.30 ·
1626 阅读 ·
5 点赞 ·
0 评论 ·
4 收藏

STM32开启停止模式,用外部中断唤醒程序运行

今天学习了一下STM32的停止模式,停止模式下,所有外设的时钟和CPU的电源都会被关闭,所以会很省电,打破这种停止模式的方式就是外部中断可以唤醒停止模式。主要看要求,没有特别的要求,不怕费电可以不用,用了就是为了省电,特别是电池供电的情况下。好了,今天的学习到此结束!第二步:调用PWR的停止模式函数。第一步:开启PWR的时钟。
原创
发布博客 2024.04.29 ·
1158 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

STM32进入睡眠模式的方法

今天学习了如何控制STM32进入睡眠模式,进入睡眠模式的好处就是省电,今天学习的只是浅度睡眠,通过中断就能唤醒。比如单片机在那一放,也许好几天好几个月都不用一次,整天的在那空跑while循环,是不是有很大的资源浪费啊,这个时候就要用到这个睡眠模式了,没有收到串口数据的时候,你就可以睡觉,等到收到串口数据后再醒来执行一段代码,执行完后,接着睡觉,再等着下次收到数据(也就是产生串口中断的时候),这样就感觉合理的利用了单片机的功能,其实要想实现这样的功能,很简单只需要一句:__WFI();
原创
发布博客 2024.04.28 ·
772 阅读 ·
3 点赞 ·
2 评论 ·
2 收藏

STM32修改主频的方法

如果想改成其他的主频,就自行更改就好了。更改主频的好处就是节省电量了,频率降低一半,耗电量也会降低一半的,有充足电源的时候不用考虑,如果是电池供电,那就很有必要了。如果有些地方一天24小时只采集一次数据,那就快慢无所谓了。大家都知道STM32F103C8T6的主频是72M,那怎么样才能在程序中获得这个主频的值呢?依据下方的方法把自己想要的主频的一行解开注释,把72M的一行注释掉,就这样更改了主频。如图找到主频的变量,然后显示这个变量就是显示主频了。按照上面的方法把文件的属性中的只读去掉,就可以了。
原创
发布博客 2024.04.27 ·
1273 阅读 ·
2 点赞 ·
0 评论 ·
12 收藏

STM32读写RTC内部时钟外设,设置和显示时钟

第二步:启动RTC的时钟,使用RCC模块里的RCC_LSEConfig函数,开启LSE的时 钟。第六步:配置CNT的值(给RTC一个初始时间)需要闹钟的话,配置个闹钟;今天学习了STM32单片机的内部时钟外设,学会了更改内部时钟和提取时钟数值的操作,只要后备电池有电,该时钟就会一直走,时间不会复位,哪怕没有给单片机供电。第三步:把结构体中的时间存放到我们指定的全局变量数组中。第二步:把时间戳转换成时间,存放到结构体中。
原创
发布博客 2024.04.24 ·
1758 阅读 ·
18 点赞 ·
3 评论 ·
18 收藏

STM32读写备份寄存器BKP

这个BKP寄存器的意思就是在芯片的VB引脚上接个电池,就能保存其寄存器中的数据掉电不丢失。将其编译下载后就能显示这次的实验结果了:这个结果只要VB有电池供电,其他都断电,其DR中的数据也不会丢失。第二步:使用PWR的一个函数,使能对BKP和RTC的访问。读取数据:BKP也有个读取的函数。写入数据:BKP有个写入的函数。大体的步骤为:先初始化,然后写DR,再读DR。第一步:开启PWR和BKP的时钟。
原创
发布博客 2024.04.23 ·
711 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

STM32利用硬件I2C读取MPU6050陀螺仪数据

参 数:GyroX GyroY GyroZ 陀螺仪X、Y、Z轴的数据,使用输出参数的形式返回,范 围:-32768~32767。参 数:AccX AccY AccZ 加速度计X、Y、Z轴的数据,使用输出参数的形式返回,范 围:-32768~32767。配置完MPU6050的各个功能寄存器,剩下的就是读取陀螺仪的数据了。电源管理寄存器1,取消睡眠模式,选择时钟源为X轴陀螺仪。电源管理寄存器2,保持默认值0,所有轴均不待机。配置寄存器,配置DLPF。
原创
发布博客 2024.04.21 ·
2734 阅读 ·
8 点赞 ·
1 评论 ·
44 收藏

STM32实现硬件I2C通讯,读取MPU6050的ID号

最后就是读取MPU6050的ID号了,MPU6050的ID号存在MPU650的寄存器地址为0x75,读取这个地址中的值就是ID号了。第一步:打开GPIOB的时钟(因为I2C2的引脚10,11在GPIOB上)第九步:发送7位地址(方向:接收模式)最后一位是接收模式。第十三步: 等待EV7事件(接收完成)第三步:发送7位地址(方向:发送者)第三步:发送7位地址(方向:发送者)第四步:等待EV6事件(发送完成)第六步:等待EV8事件(正在发送)第四步:等待EV6事件(发送完成)第六步:等待EV8事件(发送完成)
原创
发布博客 2024.04.19 ·
1704 阅读 ·
4 点赞 ·
1 评论 ·
18 收藏

STM32利用软件I2C通讯读MPU6050的ID号

今天的读ID号是建立在上篇文章中有了底层的I2C通讯的6个基本时序来编写的。十:发送应答位(0:就是给从机应答(从机继续发数据) 1:就是不给从机应答(从机停止发数据))四:发送 指定寄存器地址(用于指定读写哪个寄存器)四:发送 指定寄存器地址(用于指定读哪个寄存器)七:发送 从机地址+读写位1(1:读 0:写)二:发送 从机地址+读写位(1:读 0:写)九:接收一个字节(此时,总线控制权交给从机)六:发送(要写入指定寄存器下的数据)二:发送 从机地址+读写位。
原创
发布博客 2024.04.14 ·
1085 阅读 ·
3 点赞 ·
0 评论 ·
8 收藏

STM32完成软件I2C通讯

下面就是我写的六个时序的代码部分,可以结合着我画的图来理解,能很快的应用起来,刚开始的小伙伴估计不太会看这个时序图,我也是刚刚才有所感觉的,画的不好,理解的不够透彻,还望多多指正啊!四:接收一个字节:SCL低电平期间,从机将数据位依次放到SDA线上(高位先行),然后释放SCL,主机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可接收一个字节(主机在接收之前,需要释放SDA)下面是main.c文件,测试基础的I2C代码的时序都有没有问题。
原创
发布博客 2024.04.12 ·
550 阅读 ·
4 点赞 ·
0 评论 ·
8 收藏

STM32的位操作(相当于51单片机的sbit)

经过一段时间的学习,今天发现STM32的单个端口都有一个32位的地址,这样就可以把这个地址给找出来,进行单个位的操作了,这也没有什么好说的,直接复制粘贴就好了,用到的时候过来复制直接使用就行了。暂时我是用不到这个方法的,也不是什么特别重要的方法,用别的方法也能达到同样的效果,不过感觉没有这样直接啊!上面这个代码是写到头文件里面的,使用的时候就是直接使用PAout(n)就好了,n写几就是第几个端口这个单独的位,0x0c是ODR寄存器的偏移地址。
原创
发布博客 2024.04.08 ·
776 阅读 ·
5 点赞 ·
0 评论 ·
5 收藏
加载更多