快乐大队队长
码龄7年
关注
提问 私信
  • 博客:41,129
    社区:343
    41,472
    总访问量
  • 38
    原创
  • 2,316,645
    排名
  • 1,557
    粉丝
  • 3
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2018-03-18
博客简介:

qq_41861216的博客

查看详细资料
个人成就
  • 获得19次点赞
  • 内容获得5次评论
  • 获得131次收藏
  • 代码片获得1,100次分享
创作历程
  • 19篇
    2023年
  • 16篇
    2022年
  • 4篇
    2021年
成就勋章
TA的专栏
  • 从0到1深入学习嵌入式
    2篇
  • 深度学习&源码分析
    1篇
  • 后端运维技术
    14篇
  • Java八股文
    1篇
  • 笔记
    2篇
兴趣领域 设置
  • Java
    javaspring
  • 编程语言
    c++
  • 前端
    node.jsvue.js
  • 人工智能
    深度学习pytorch
创作活动更多

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

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

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

STM32的MAP文件

MAP文件是 MDK编译代码后,产生的集程序、数据及IO空间的一种映射列表文件。RW:Read-Write的缩写,主要是RW-data,RW-data由程序初始化初始值。ZI:Zero-initialized的缩写,主要是ZI-data,由编译器初始化为0。RO:Read-Only的缩写,包括RO-data(只读数据)和RO-code(代码)段(section):描述映像文件的代码和数据块。.constdata:与RO-data同义。.data:与RW-data同义。.bss:与ZI-data同义。
原创
发布博客 2023.07.12 ·
1261 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

炒了个叫“嵌入式”的大杂烩,请大家品尝

时钟系统是CPU的脉搏,非常重要。STM32时钟系统比较复杂,不像51单片机一个时钟就可以解决一切,它是由有五个时钟源组成,HSIHSELSILSEPLL。由于STM32本身非常复杂,外设非常多,并不是所有外设都需要系统时钟那么高的频率。同一个电路时钟越高功耗越大,抗电磁干扰能力也就越弱,所以STM32采用多时钟源的方法来解决这些问题。
原创
发布博客 2023.06.15 ·
329 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

手写STM32IIC协议

应答信号时序代码编写。应答信号,发送器每发送一个字节(8个bit),就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。、开启GPIOB的时钟。IIC总线空闲时表现为高电平,所以初始化之后将时钟信号、数据信号拉高。本文使用正点原子战舰v4开发板,用软件模拟iic协议而非使用硬件iic。在IIC总线上传送的每一位数据都有一个时钟脉冲相对应(或同步控制),即在。由高电平向低电平跳变,开始传送数据。定义、声明引脚功能。初始化相关GPIO,开启相关时钟。开始信号的时序编写。输入输出模式的切换。
原创
发布博客 2023.06.10 ·
902 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

USART2实现Motbus485通信

本文会教你如何驱动485传感器,通过手写串口通信到485数据收发,实现传感器的驱动。
原创
发布博客 2023.06.09 ·
1483 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

【STM32F1】以太网通信之UDP/TCP实验

在本实验中,开发板主控芯片通过 SPI 接口与 CH395Q 以太网芯片进行通讯,从而完成对CH395Q 以太网芯片的功能配置、数据接收等功能,同时将 CH395Q 以太网芯片的 Socket0 配置为 UDP 模式,并可通过按键发送 UDP 广播数据至其他的 UDP 客户端,也能够接收其他 UDP客户端广播的数据,并实时显示至串口调试助手CH395Q进行UDP实验,实际是在移植的基础上,将结构体内容拷贝给ch395q_t结构体。而函数做的便是这个功能。
原创
发布博客 2023.06.07 ·
2671 阅读 ·
1 点赞 ·
0 评论 ·
10 收藏

【STM32F1】CH395Q驱动库移植

接着,移植SPI的驱动添加到BSP目录下。在user文件夹下新建测试文件。:我们选用原子战舰V4的例程。将驱动库文件添加到工程。文件,用来编写测试代码。main.c函数代码如下。
原创
发布博客 2023.06.06 ·
1155 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

CMake入门教程

动态库的链接具有传递性,如果动态库 A 链接了动态库 B、C,动态库 D 链接了动态库 A,此时动态库 D 相当于也链接了动态库 B、C,并可以使用动态库 B、C 中定义的方法。我们编写的源代码并不需要将他们编译生成可执行程序,而是生成一些静态库或动态库提供给第三方使用,下面来讲解在 cmake 中生成这两类库文件的方法。在编译项目源文件的时候,很多时候都需要将源文件对应的头文件路径指定出来,这样才能保证在编译过程中编译器能够找到这些头文件,并顺利通过编译。CMake提供了搜索文件的命令。
转载
发布博客 2023.06.06 ·
944 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

FreeRTOS队列【STM32F1】

函数xQueueCreate是动态创建队列的方式,xQueueCreateStatic则是静态创建队列。其中参数表队列长度,uxItemSize指队列项目的大小。如果队列创建失败会返回NULL,创建成功则返回其他值(队列的起始地址)。函数 xQueueCreate()实际上是调用了函数 xQueueGenericCreate()。其中指队列存储区域起始地址,指静态队列结构体,创建成功返回非NULL。
原创
发布博客 2023.05.29 ·
230 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

FreeRTOS列表与列表项

FreeRTOS中的列表与列表项本质是数据结构中的链表链表和节点。
原创
发布博客 2023.05.27 ·
159 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【STM32F1】RTOS中断管理

普通进入临界区的宏taskENTER_CRITICAL()与中断中进入进阶区的宏taskENTER_CRITICAL_FROM_ISR(),前者是任务级的,进入临界区后屏蔽任务之间相互抢资源。后者是中断中进入的。我们在中断函数中打印看是那个定时器输出的,以进行对比,达到验证FreeRTOS管理中断优先级在5-15之间的中断。这边临界区的概念是:临界区内的代码不允许打断,所以进入的时候我们会关闭中断,出去的时候会开启中断,当然这里提到的中断指的是被RTOS所管理的中断。task1用于打开和关闭中断。
原创
发布博客 2023.05.23 ·
272 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

【STM32F1】FreeRTOS任务挂起与恢复

若要使用此函数,需要将FreeRTOSConfig.h文件中INCLUDE_xTaskResumeFromISR宏配置为1。需要传入的是待恢复任务的任务句柄。有BaseType_t类型的返回值,返回pdTRUE表示恢复后需要进行任务切换,返回pdFALSE表示恢复后不用进行任务切换。,只能在中断函数外使用。它需要传递的是要恢复的任务的句柄。当按下key0时,led0任务挂起,按下key1时,led0任务恢复。基于创建与删除实验,我们要新建一个任务task3,实现通过按键对任务进行挂起与恢复。
原创
发布博客 2023.05.20 ·
327 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【STM32F1】FreeRTOS创建/删除任务实验

第三个参数任务要使用的堆栈大小。与静态创建任务函数不同的是,动态任务创建函数创建的任务使用的空间、堆栈大小这些都是由RTOS进行管理的,而静态任务创建函数则是需要用户去定义空间、堆栈大小这些。被删除的任务将被从就绪态任务列表、阻塞态任务列表、挂起态任务列表和事件列表中移除,要注意的是,空闲任务会负责释放被删除任务中由系统分配的内存,但是由用户在任务删除前申请的内存,则需要由用户在任务被删除前提前释放,否则将导致内存泄露。//删除开始任务,为NULL默认删除该任务,或者写要删除的任务对应的任务句柄。
原创
发布博客 2023.05.18 ·
242 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

FreeRTOS移植【STM32F1】

考虑移植完的项目后续有用到其他外设,如LED、LCD的可能,我们在正点原子HAL库版本的内存管理实验工程上进行freertos的移植工作。当然该工程不包含定时器的驱动文件,我们也将定时器相关的准备好。其中source文件夹下的portable文件夹中我们只用到了keil、MemMang、RVDS三个文件,选中其他不必要的文件并删除,如下。原子最初的system文件是针对ucos编写的,所以我们需要进行相关修改。delay.c文件的修改,该文件需要修改的比较多。内核的移植文件,需要添加两个文。
原创
发布博客 2023.05.18 ·
949 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

STM32跑马灯实验【库模板】

我们在这里主要用到的是上面加粗的函数。关于GPIO相关函数的使用方法,在进行开发时我们往往是选中该函数然后进行"go to definition",查看使用方法,如图。下面是led初始化(GPIO初始化)的完整程序,在程序中先将GPIOB和GPIOE的时钟开启,用了。对于GPIO方法的使用,在GPIO的h文件最下方列出了几乎所有的GPIO相关函数。我们复制GPIOB到函数第一个参数的位置,对于第二个参数也是同样的方法。后面就是GPIO相关的函数使用了。其他函数的使用也是这样的方法。那本篇就先介绍到这里。
原创
发布博客 2023.04.27 ·
322 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【STM32工程模板】库函数模板搭建

本文讲解的是一个库函数模板工程的搭建,我们做的基于库函数的开发基本上都是基于该模板。那本节主要讲的是关于库函数的模板搭建,需要相关文件的可以私信。
原创
发布博客 2023.04.27 ·
323 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

经典主干DarkNet53&网络搭建

YOLOv3中的backbone,DarkNet53。不同于YOLOv2中的DarkNet19,它由大量的残差组成,DarkNet53在ImageNet上面的表现也证明了该网络的有效行。DarkNet53的网络结构如下。YOLO版本的如下:Darknet-53中总共有6个单独的卷积层和23个Residual,每个Residual包含2个卷积层(一个1×1,一个3×3),所以Darknet-53中共有52层卷积,可为什么叫做Darknet-53呢?
原创
发布博客 2023.04.26 ·
1170 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

vue从0到1(基础篇)

从0到1学一遍vue,这边记录本人学习vue的过程。
原创
发布博客 2023.01.15 ·
479 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

centos7安装yum/git/curl

介绍阿里云centos7安装yum/git/curl的方法,拒踩坑!
原创
发布博客 2023.01.12 ·
862 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

阿里云centos7安装与配置Jenkins

常用工具有 Gitlab CI,Github CI,Jenkins 等。这个环节不参与部署,只负责构建代码,然后保存构建物。若提示:jenkins-2.249.1-1.1.noarch.rpm 的公钥尚未安装,则使用以下脚本安装,跳过公钥检查。负责拉取代码库中的代码后,执行用户预置定义好的操作脚本,通过一系列编译操作构建出一个。:若之前已从Jenkins导入过密钥,“rpm–import”将失败,请忽略,继续执行下面。的概念是:将制品库的制品拿出后,部署在测试环境 / 交付给客户提前测试。
原创
发布博客 2023.01.10 ·
1209 阅读 ·
3 点赞 ·
0 评论 ·
9 收藏

Docker之搭建 Java Web 项目运行环境

与之前我们提及的一样,要搭建这样的由多个程序所协作组成的开发环境,使用 Docker Compose 是最佳的选择。建立 Docker Compose 项目之前,我们先来规划一下项目的目录结构。项目内容清晰明确,复制、迁移和与他人共享的过程中,不会发生遗漏的情况;在定义 Docker Compose 项目时可以使用相对路径,让共享、迁移后整个项目可以不需要额外操作就能运行。在这些的基础上,我给出一个建议性的目录结构,供大家参考。
原创
发布博客 2022.11.27 ·
696 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏
加载更多