- 博客(31)
- 资源 (5)
- 收藏
- 关注
原创 Nordic 日志
文章目录1、日志中的定义1.1、日志信息结构体1.2、通用宏1.3、日志注册宏1.4、打印宏1.5、其他宏1.6、适配不同编译链1.7、项目信息1.8、具体函数2、 日志调用2.1 日志初始化2.1.1 相关宏2.1.2 宏替换分析2.2 日志结构体定义2.2.1 模块中的日志定义2.2.2 宏替换分析2.2.3 Tips2.3 调用日志2.3.1 宏替换分析2.4 日志输出分析RTT的输出函数串口的输出函数Nordic 日志本文为本人粗略研究Nordic所作笔记,只研究了在GUNC中的代码编译器环境
2022-04-02 00:16:27
1025
原创 获取不定数目传参个数方法
文章目录宏定义使用方法原理解析获取不定数目传参个数方法宏定义/**@brief Implementation details for NUM_VAR_ARGS */#define NUM_VA_ARGS_IMPL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, N, ...) N/**@brief Macro to get the number of arguments in a call variadic macro call * * param[in]
2022-04-02 00:05:30
358
原创 nRF52840脱坑指南
Nordic 日志1、日志中的定义1.1、日志信息结构体1.2、通用宏1.3、日志注册宏1.4、打印宏1.5、其他宏1.6、适配不同编译链1.7、项目信息1.8、具体函数2、 日志调用2.1 日志初始化2.1.1 相关宏2.1.2 宏替换分析2.2 日志结构体定义2.2.1 模块中的日志定义2.2.2 宏替换分析2.2.3 Tips2.3 调用日志2.3.1 宏替换分析2.4 日志输出分析RTT的输出函数串口的输出函数Nordic 日志本文为本人粗略研究Nordic所作笔记,只研究了在GUNC中的代码
2021-11-18 21:31:52
10011
1
原创 ESP32S2的ADC出坑记录
ADC DMAADC简介RTC控制器DIG控制器TEST_CASE测试移植ADC的初始化代码DMA数据处理完整代码C文件h文件总结我会详细的解释各个模块的作用,如果只需要代码,则直接看最后一个章节的代码。ADC简介ESP32S2的ADC有两个控制器,一个是RTC控制器,一个是DIG控制器。官方的adc1_get_raw是基于RTC控制器,是已经设置过的最快的采集速度。由于RTC模式下的最大采样速度只有200kHZ,正常情况下是能满足需求的,但是如果需要更快的速度,则需要使用DIG控制器,并且使用DMA
2021-03-22 18:27:43
8246
17
原创 ARM嵌入式裸机简单使用
基于正点原子 ALPHA开发板,长文预警,建议收藏之后用到之后再查看文章目录主频与时钟I.MX6U系统时钟分析7路PLL时钟树外设如何选择时钟需要初始化的PLL和PFDI.MX6U系统配置系统主频的配置各个PLL时钟的配置其他外设时钟源配置C代码中断Cortex-A7中断系统Cortex-A中断向量表中断向量偏移GIC中断控制器IMX6U中断号中断服务函数的编写编写按键中断例程。修改start.SCP15协处理器退出中断中断汇编代码复位中断函数IRQ中断函数C语言中断编写带有中断号的中断处理函数irqTa
2021-02-28 18:43:40
1024
原创 ARM嵌入式裸机简单了解
文章目录开发环境的搭建文件互传FTPsambaNFS和SSH服务交叉编译器的安装使用汇编简单点亮LED灯为什么要学习Cortex-A汇编ALPHA开发板LED灯硬件驱动流程汇编简介编写驱动编译程序烧写bin文件IMX启动方式硬件启动启动方式的选择启动设备的选择启动头信息BOOTROM作用IVT(Image Vector Table)和BootData数据DCD数据其他的数据C语言点亮LED灯C语言运行环境构建设置处理器模式设置sp指针(栈指针)跳转到C语言C软件编写链接脚本BSSBSS清0汇编代码基于正点
2021-02-28 18:41:38
1643
原创 ubuntu系统操作简单介绍
文章目录Ubuntu的常用操作命令Ubuntu安装软件通过APP Store安装使用APT工具安装deb软件包安装自己下载程序源码编译安装其他安装方法文件系统结构根目录 /文件系统结构绝对路径和相对路径磁盘管理磁盘文件磁盘挂载与卸载,分区和格式化磁盘的挂载和卸载磁盘分区磁盘格式化压缩与解压缩Linux下常用的压缩格式Windows下7ZIP软件的安装gzip压缩工具bzip2压缩工具tar打包工具对tar.bz2进行压缩和解压缩对.tar.gz进行压缩和解压缩.rar格式.zip格式用户和用户组用户用户组
2021-02-28 18:39:07
1329
原创 基于urllib的简单爬虫
基于urllib的简单爬虫什么是爬虫python如何访问互联网URLlib实战爬取html有道翻译隐藏代理爬取妹子图片正则表达式异常处理Scrapy本系列来源于B站视频。UP主为IT搬運工,系列视频为[小甲鱼]零基础入门学习python。点我直达什么是爬虫又称为网页蜘蛛,在网页上获取所需要的信息。python如何访问互联网url + lib= urllibURL协议://IP地址/资源具体地址liburllib实战爬取html爬取网页html代码import urllib.requ
2021-02-15 13:18:11
287
原创 为你的博客增加一些有趣的功能
为你的博客增加一些有趣的功能主题主题介绍fluid主题必要配置帮助文档评论评论模块valine评论模块valine前提leancloud操作注册leancloud账号创建应用appid和appkey运行时间增加一言这个地方留白好久了,从创建到现在大概留的有二十天左右了,实在是因为最近沉迷于一款steam上的单机游戏,不可自拔。现在终于抽出来时间来补充这个地方的空白,实属不易。主题主题介绍hexo可供选择的主题可太多了。用的最多的大概就是next主题了。但是我在hexo的可选主题中,浏览了好久。最终选
2020-10-21 01:44:55
646
2
原创 hexo搭建博客的几种方式(入门级)
既然你看见我了,那你肯定就是想搭建博客了,是的吧~ (如果你只是想搭建博客的话 ,是不需要看概述的,直接点击右侧目录的hexo安装就OK)如果你有问题,可以在下方评论,不过没有提醒,所以我一般看不见,你也可以在加我放在博客里的微信二维码概述既然想搭建博客,那就肯定需要先了解他是个啥吧,不然一头闷的跟着教程直接走,创建成功了,能装X了,但是迷迷糊糊的,也啥都不了解,人家一问,不就露馅了嘛。网站介绍博客首先是一个网页,这个都知道吧。网页的话,肯定就会有一些网页的相关特征。比如说制作网页的语言都是通过j
2020-10-02 22:11:33
1055
3
原创 STM32CubeMx + LWIP(实现UDP组播/MQTT/热插拔)系列 汇总与写在前面
本系列只是示例代码,是我根据我所成功量产的项目经过简化处理得来。因为具体的代码为公司代码,不能随便写出来以对公司造成损失。我在使用lwip时,并没有使用到TCP。所以本系列不包含TCP的发送接收与连接。本系列中的所有回调函数和一些特定的数据例如IP地址,mqtt的信息,需要根据自己的项目进行设置。我这里只是随手写的,不可直接搬砖使用。本项目上传的lwip为2.1.3版本,cube生成的...
2020-05-07 22:11:33
1649
原创 STM32CubeMx + LWIP(实现UDP组播/MQTT/热插拔)系列 四 ----- MQTT的连接与使用
mqtt的全局变量mqtt_client_t *lwip_mqtt;mqtt的连接,不要直接复制粘贴哦,记得把参数设置成你项目中用到的数据char LWIP_Connect(mqtt_client_t *client){ struct mqtt_connect_client_info_t ci; err_t err; ip_addr_t my_ip_add...
2020-05-07 21:57:50
2316
原创 STM32CubeMx + LWIP(实现UDP组播/MQTT/热插拔)系列 二 ----- CubeMx生成文件的简单介绍与热插拔
CubeMx生成的文件主要是两个文件,lwipopts.h和ethnetif.c。lwipopts.h主要是对于lwip中一些宏的定义的选择。该文件include在lwip的opt.h文件前面。因此在本文件定义的宏,会生效。若lwipopts.h未定义,则使用opt.h文件中的宏。lwipopts.h我用到了以下宏:LWIP_DHCP获取网络IP。LWIP_IGMPudp的组播...
2020-05-07 20:29:57
1982
1
原创 STM32CubeMx + LWIP(实现UDP组播/MQTT/热插拔)系列 三 ----- IP地址的获取,UDP的连接
IP地址获取IP地址的获取需要调用DHCP进行自动分配。struct netif *Network_Interface; //cube生成的lwip.c文件中有定义全局变量 struct netif gnetif;之后的网络相关基本都是使用该全局变量,但是需要自己外部声明//主函数循环例程int timestamp = 0;unsigned char Ip[20] = {0};...
2020-05-06 21:58:23
2324
2
原创 STM32CubeMx + LWIP(实现UDP组播/MQTT/热插拔)系列 一 ----- CubeMx配置
本配置是我在实际项目中的配置。具体:MCU是STM32F107,PHY为DP83848,接口为RMII。若使用其他芯片,只可作为参考。时钟配置DP83848使用的时钟来源为MCU提供。DP83848可支持10M/100M的线速。由于RMII为双线,所以MCO应输出50MHZ。STM32F107对外输出时钟引脚为PA8,在RCC中需要选择Master Clock Output...
2020-05-06 20:03:00
6276
3
原创 win10 defender删除的文件恢复问题
有时候下载一些资源的时候,defender会自动认为一些安全文件是病毒,然后就发现源目录直接就找不到了。这种一般是把文件进行了隔离,并没有删除,只要还原就可以了。必须保证文件确实没有病毒这种情况处理办法:设置->更新和安全->windows安全中心->打开windows安全中心->病毒和威胁防护->保护历史记录->找到你的文件(根据时间)->操作-...
2020-04-09 15:33:21
22603
原创 解决STM32内部时钟当RTC时钟源计时不准问题(用于精准时间内唤醒处于停止模式下的设备)
因为LSI是RC振荡电路产生,所以产生的时钟周期都不会太准。但是由于很多公司为了节约成本不会选择LSE,当然这也没有问题,只要定时器能正常工作也能够很准的计时。但是,很多类型的设备例如手持设备,需要做到低功耗,就需要进入停止模式,这时候只有RTC可以运行对芯片进行唤醒。这时候就需要进行精准的进行唤醒(例如:10s唤醒一次)。此时可采用的一种方法是,使用定时器进行校准。校准函数如下所示:...
2020-02-18 23:52:08
13447
3
原创 读取W25QXX数据时的注意事项
使用w25读取flash数据的时候,上电第一次读取数据总是出错,之后读取数据便是正确的了,刚开始以为是片选脚的速率比SPI的速率低而导致先进行了SPI读取,然后再拉低的片选。因为查看cube发现片选脚的为最低速率10MHZ,而spi的速率则达到了12M以上,但是修改了之后,发现还是会出现这一个问题,最后使用逻辑分析仪,查看时序,才发现W25根本就没有识别到第一次发送的数据,片选脚在...
2019-12-26 18:19:16
6327
3
原创 关于找不到stm32f1xx_hal_exti.h的解决办法
前两天在使用5.4.0的cube生成的代码中需要用到stm32f1xx_hal_exti.h文件时,库中却没有该文件。解决办法:使用stm32最新的f1官方库1.8.0,库中含有该文件.若是生成的项目的库中没有文件时,可以将该文件放入相应的inc和src中去。如果不想在ST官网下载文件且有下载次数的话,下面为压缩版链接1.8.0...
2019-11-06 21:40:16
5947
原创 DW1000学习之路(三)--------DW1000的中断处理问题
我使用的是STM32F103对DW1000进行处理,F103的外部中断线配置我就不再这里说了,网上的资源一找一大把。 STM32的对应的中断服务函数里只是在有外部中断的情况下,执行port_deca_isr()函数,该函数为DW1000官方命名的void(*port_deca_isr_t)(void);定义的函数指针。该函数通过执行port_set_deca_...
2019-07-28 21:50:31
5938
原创 DW1000学习之路(二)--------使用DW1000接收数据
DW1000接收流程:初始化与配置与上一篇的初始化配置相同接下来写不相同的地方---->DW1000接收使能---->读取DW1000状态寄存器是否接收完成或者接收错误---->读取数据长度---->将数据写入buf中---->写1清除接收完成位。 主函数代码如下:int main(void){ int i; ...
2019-07-26 22:28:25
9049
9
原创 DW1000学习之路(一) -------- 使用DW1000发送数据
DECAWAVE上给了好多例程,第一个便是使用DW1000发送数据,但是官方例程全部都是使用的IDE是CooCox,想要看官方源码的又没有的可以留言找我要。 我是用的驱动方式为SPI,但是SPI的有四种工作模式,由GPIO.5和GPIO.6上拉或者下拉来决定,具体见下表。 我使用的为第一种工作模式,因此在第一个跳变沿出发,空闲状态为低电平。...
2019-07-25 22:05:37
17603
10
原创 DW1000应用
最近在使用DW1000进行测距定位,由于第一次接触这个芯片,所以好多地方不懂,而现在所有的资料大多是英文资料,我又看不懂,只能通过谷歌有道翻译这些翻译软件进行翻译。而我现在也只是在学习中,所以不完全保证写的东西完全正确,但是我还是写出来了,这样我的错误才能被发现,被改正。如果你们最后发现了哪些问题,记得私信我,或者评论。我看到就会改过来,万分感谢。DW1000之一(发送数据)...
2019-07-14 00:39:42
2238
2
原创 Linux系统项目
系统项目报告项目列表项目总结项目列表近期刚开始学习Linux系统,并使用c语言总共写了三个Liunx系统的项目:银行管理系统简易聊天室MP3播放器项目总结在项目中,我使用了进程,线程,数据库,基于TCP的网络编程,数据结构使用了链表。总体来说涉及的比较广泛,把系统中的许多知识点使用了进来,但是由于水平的限制,写出的代码显得比较low一些。Linux系统还需要学习好多东西,所以还需要加...
2019-03-26 10:42:57
5725
7
原创 简易聊天室
Linux系统项目之简易聊天室聊天室简介客户端服务器端makefile总结聊天室简介通过C语言写了一段代码,实现在一个局域网下实现了群聊和私聊,可以通过输入switch实现群聊和私聊的切换,通过输入seeyou来退出聊天室。本文存在的问题,当昵称相同时输入需要私聊的昵称时只能和第一个进入聊天室的人私聊。客户端客户端通过TCP通讯协议和服务器端进行通讯,首先产生套接字然后与服务器建立连接。进...
2019-03-25 15:59:16
3083
11
原创 MP3播放器
Linux系统学习项目之MP3播放器本人是个小白,跟着嵌入式培训班刚开始学习Linux系统一个月,被要求做一个MP3播放器的项目,培训班提供的音乐器的播放命令为madplay,由于刚学,所以写的项目还是有一些问题和bug,如果你有更好的改进方法,可以在文章底下留言。话不多说了,直接上代码。/****************************************************...
2019-03-22 11:52:14
2312
10
dw1000_api_rev2p14_coocox.zip
2020-03-24
STM32Cube_FW_F1_V1.8.0.zip
2019-11-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人