- 博客(164)
- 资源 (35)
- 收藏
- 关注

原创 使用stm32裸机或者rtt系统遇到的坑
1、使用换用c8芯片不能进入main函数,会出现HardFault的诊断错误原因上次使用的芯片ram空间64k这次的是20k
2020-07-30 11:57:34
10648
11

原创 杂乱
目录工具ESP8266FlyThingsRT-Thread常用模块电路LINUXC&C++AndroidSTM32杂乱工具串口工具简单的电压转换电路(AMS1117)蓝牙从AT指令到串口透传(主机和从机设置)注意公共段为vcc近期常用记不住命令ESP8266ESP8266 SDK开发之编译环境搭建0E...
2019-01-12 17:02:40
418

原创 笔记目录,导航
VMware问题以及设置LINUX串口笔记Linux命令篇 Linux中查看一些硬件&系统信息在android系统命令行中执行arm linux程序,出现/system/bin/sh: .xxx No such file or directory问题samba服务的安装及配置(文件共享服务)Linux修改用户名主机名make: arm-linu...
2018-08-09 09:51:04
354
原创 STM32之FMC—扩展外部 SDRAM
FSMC 连接好外部的存储器并初始化后,就可以直接通过访问地址来读写数据 其中这部分在内存中有着固定的存储地址,存储单元是映射到 STM32 的内部寻址空间的;在程序里,定义一个指向这些地址的指针,然后就可以通过指针直接修改该存储单元的内容,FSMC 外设会自动完成数据访问过程,读写命令之类的操作不需要程序控制。
2024-09-16 21:22:27
2654
原创 esp32之uart基础
ESP32-S3 芯片中有三个 UART 控制器可供使用,并且兼容不同的 UART 设备。此外,UART还可以用作红外数据交换(IrDA)或 RS485 调制解调器。三个 UART 控制器分别有一组功能相同的寄存器,分别为 UART0、UART1、UART2。SP32芯片有三个UART控制器(UART0, UART1和UART2),其中UART0(GPIO3用于U0RXD,GPIO1用于U0TXD)用作下载、调试串口,引脚不可改变;UART1和UART2的引脚是可以重新定义的。
2024-09-04 16:02:18
1430
原创 vscode之建立属于自己的代码片段/代码模板
ProcessBuilder和Process两个类的区别原来,ProcessBuilder为进程提供了更多的控制,例如,可以设置当前工作目录,还可以改变环境参数。而Process的功能相对来说简单的多。 ProcessBuilder是一个final类,有两个带参数的构造方法,你可以通过构造方法来直接创建ProcessBuilder的对象。而Process是一个抽象类,一般都通过Runtim...
2024-09-04 15:30:46
1538
1
原创 influxdb使用
InfluxDB Studio属于windows平台下对InfluxDB数据库进行管理的工具,简单易用。1、下载后解压就可以使用,打开InfluxDBStudio2、配置,输入InfluxDB的IP地址,端口是固定8086,我的数据库jmeter没有设置用户名密码,点击test,可以正常连接3、运行jmx脚本,InfluxDB中就会实时存入数据,打开jmeter表,就可以看到我的测试数据sql:SELECT * FROM "jmeter" WHERE time > now(
2024-09-04 15:27:36
1428
原创 stm32之外部flash下载算法
通过MDK创建一批与地址信息无关的函数,实现的功能主要有初始化,擦除,编程,读取,校验等,然后MDK调试下载阶段,会将算法文件加载到芯片的内部RAM里面(加载地址可以通过MDK设置),然后MDK通过与这个算法文件的交互,实现程序下载,调试阶段数据读取等操作。(1) 程序里面的操作adr -= QSPI_FLASH_MEM_ADDR,实际传递进来的地址是带了首地址的,即0x90000000。这个名字是方便用户查看的,比如设置为daiver_h7,那么输出的算法文件就是daiver_h7.flm。
2024-09-04 15:24:54
1765
原创 不常用软件使用
Cellular-Zwireshark软件抓包工具Wireshark,用来获取网络数据封包,包括HTTP、TCP、UDP等网络协议包。开始界面wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。直接双击上面的某个网卡即可。RustDesk的远程桌面软件...
2021-08-27 23:23:27
716
原创 map文件查看
map文件里面内容大致分为五大类(按照map文件分类的顺序):1.Section Cross References:模块、段(入口)交叉引用;2.Removing Unused input sections from the image:移除未使用的模块;3.Image Symbol Table:映射符号表;4.Memory Map of the image:内存(映射)分布;5.Image component sizes:存储组成大小。Ⅰ、Section Cross Refer
2021-07-11 06:43:42
10240
1
原创 ARM仿真器
==================================================================================================================================================
2021-07-08 08:38:01
9341
原创 rt-thread调度锁与关闭中断
文章目录1.说明2.调度锁与关闭中断中断关闭使用调度锁说明使用中断锁说明总结1.说明rt-thread操作系统,什么时候用到调度锁,又什么时候用到关闭中断?以及关闭调度器后可以做什么事情,关闭中断后又能做什么事情?从问题出发,实际应用的角度去分析这些问题。2.调度锁与关闭中断在rt-thread中,保护临界区的方法除了IPC线程间通信机制,然后就是调度锁与关闭中断了。rt-thread调度锁的目的是让调度器停止工作,这时不进行线程的切换工作。也就是说,在调度锁范围内的代码是独占CPU资源的,当前的
2021-04-21 17:09:02
3416
原创 Visual Studio Code 使用
单行注释:ctrl + /多行注释1:CTRL + K + C取消注释:CTRL+K+U多行注释2:ALT + SHIFT + A
2021-03-14 20:12:07
190
原创 C语言笔记之内存总结
C语言程序需要载入内存才可以运行,其不同的数据保存在不同的区域。所使用的内存可以分成两类:一类是静态存储区,另一类是动态存储区。C语言程序的存储区如下图所示:1、静态存储区静态存储区分为三类:只读数据区(RO Data)、已初始化读写数据区(RW Data)、未初始化读写读写数据区(BSS)。这三类存储区都是在程序的编译-连接阶段确定的,且运行过程中是不会变化的,只有当程序退出的时候,静态存储区的内存才会被系统回收。2、动态存储区动态存储区主要分为两类:一类是栈(Stack)
2021-03-11 08:42:59
419
原创 rtthread学习
RT-Thread 内核实现与应用开发实战指南1、数据类型rtdef.h 中的数据类型在裸机系统中,他们统统放在一个叫栈的地方,栈是单片机 RAM 里面一段连续的内存空间,栈的大小一般在启动文件或者链接脚本里面指定, 最后由 C 库函数_main 进行初始化。但是, 在多线程系统中,每个线程都是独立的,互不干扰的,所以要为每个线程都分配独立的栈空间,这个栈空间通常是一个预先定义好的全局数组, 也可以是动态分配的一段内存空间,但它们都存在于 RAM 中。rt_err_t rt_thr..
2021-03-10 21:25:31
1195
原创 嵌入式C编码规范
一般规则这里列出了最明显和最重要的一般规则。在你继续阅读其他章节之前,请仔细检查它们。 使用C99标准 不使用制表符,而是使用空格 每个缩进级别使用4个空格 在关键字和左括号之间使用一个空格 在函数名和左括号之间不要使用空格 不要在变量/函数/宏/类型中使用__或_前缀。这是为C语言本身保留的 对于严格的模块私有函数,使用prv_ name前缀 对于包含下划线_ char的变量/函数/宏/类型,只能使用小写字母 左花括号
2021-03-06 09:28:28
266
原创 STM32之TIM定时器
TIM1高级定时器定时器应用之PWM输出1.1 TIM1_CH1N与 TIM1_CH1 的区别定时器1,它的每一个输出通道都是成对的,即TIM1_CH1N与TIM1_CH1两个一组。TIM1是一个完整的电机控制用定时器外设,TIM1_CH1和TIM1_CH1N,用于驱动上下两个功率管。如果Deadtime为0,则 TIM1_CH1N是TIM1_CH1的反相,如果Deadtime不为0,则在TIM1_CH1N上插入了Deadtime,防止上下功率管同时导通。另外的两类管脚定义:TIM.
2021-02-06 11:34:00
4306
原创 rtthread学习之(4)——STM32系列驱动介绍
链接:https://gitee.com/rtthread/rt-thread/blob/gitee_master/bsp/stm32/docs/STM32%E7%B3%BB%E5%88%97%E9%A9%B1%E5%8A%A8%E4%BB%8B%E7%BB%8D.mdSTM32系列驱动介绍在 RT-Thread 实时操作系统中,各种各样的设备驱动是通过一套 I/O 设备管理框架来管理的。设备管理框架给上层应用提供了一套标准的设备操作 API,开发者通过调用这些标准设备操作 API,可以高效地完成和
2020-11-22 16:56:35
1862
原创 rtthread学习之(3)——STM32系列BSP外设驱动使用教程
链接:https://gitee.com/rtthread/rt-thread/blob/gitee_master/bsp/stm32/docs/STM32%E7%B3%BB%E5%88%97BSP%E5%A4%96%E8%AE%BE%E9%A9%B1%E5%8A%A8%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B.md简介本文档是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现
2020-11-22 16:53:54
1976
原创 rtthread学习之(1)——STM32 系列 BSP 制作教程
连接:https://gitee.com/rtthread/rt-thread/blob/gitee_master/bsp/stm32/docs/STM32%E7%B3%BB%E5%88%97BSP%E5%88%B6%E4%BD%9C%E6%95%99%E7%A8%8B.md为了让广大开发者更好、更方便地使用 BSP 进行开发,RT-Thread 开发团队重新整理了现有的 STM32 系列的 BSP,推出了新的 BSP 框架。新的 BSP 框架在易用性、移植便利性、驱动完整性、代码规范性等方面都有较大提
2020-11-22 16:51:32
2021
原创 rtthread学习之(2)——STM32 系列外设驱动添加指南
1. 简介本文档是为需要给现有的 STM32 BSP 添加更多外设驱动的开发者准备的。通过阅读本文,开发者可以按照自己的实际情况给现有 BSP 添加自己需要的驱动。2. 前提要求熟练使用 ENV 工具,参考:RT-Thread env 工具用户手册 熟悉 Kconfig 语法 熟悉 STM32CubeMX 工具 对 RT-Thread 设备驱动框架有一定了解3. 如何添加更多的外设驱动选项本章节以添加片上外设驱动为例,讲解如何为 BSP 添加更多可用驱动。如果想使用的片上外设是...
2020-11-22 16:48:44
3511
2
原创 STM32 备份域(备份寄存器、备份SRAM)详解及数据丢失问题处理
STM32F4提供4KB的备份SRAM,在开发程序时可以用于存储掉电不丢失的数据(需要RTC纽扣电池支持),特别是一些实时修改的,掉电不能丢失的数据,比如我用于存储雨量累计流量等实时变化的数据,定时存储到flash,实时存储到备份区(不能频繁的写flash),当备份区数据丢失了再从flash加载,否则每次都从备份区加载。然而在使用过程中发现备份区域数据丢失!下面从STM32系列芯片提供的整个备份域来看看啥情况。某些STM32芯片提供了备份SRAM,例如STM32F系列芯片有4K的备份SRAM。.
2020-10-31 16:23:26
9437
原创 使用j_Flash合并bin文件
打开J-Flash1、打开文件第一个文件,设置地址2、打开第二个文件,合并文件,添加地址3、另存文件為XXXX.bin
2020-10-31 08:32:32
547
原创 关于RT-Thread调度器锁
RT-Thread系统开发,业务应用使用到了RT-Thread的调度器锁,因为使用不慎导致走了一部分弯路。致命的错误是,未有考虑到逻辑的执行与非执行后果,线程上锁后,逻辑条件未满足调度锁未能释放,从而导致其他线程未能获得CPU资源,出现是系统“假死”的现象。由于逻辑条件比较难重现,任务线程也及中断条件也不少,查找问题花费一部分时间。当然,最后还是发现致命的基础问题,就是调度器锁未能及时释放。作个总结。2.RTT调度器锁 调度器锁,是用于线程同步的一种方式,RT-Thread提供的调度器锁在使用时比..
2020-08-31 17:14:59
1083
原创 STM32唯一ID(Unique Device ID)的读取方法
每一个STM32微控制器都自带一个96位的唯一ID,也就是Unique Device ID或称为UID,这个唯一ID在任何情况下都是唯一的且不允许修改。 在开发过程中,可能需要用到这个UID,比如博主最近在研究的UAVCAN中就用到了UID。那么,这96位ID怎么读取呢?可以以字节(8位)为单位读取,也可以以半字(16位)或者全字(32位)读取。这里需要注意的是UID的首地址问题,因为不同型号的STM32芯片的首地址可能不同。在网上搜索后发现,STM32F103系列MCU的UID首地址是0x1fff..
2020-08-31 17:10:43
6762
2
原创 rtthread 函数学习
rt_system_heap_init在使用堆内存前,必须要在系统初始化的时候进行堆内存的初始化,函数为void rt_system_heap_init(void *begin_addr,void *end_addr) 注:这个函数会把begin_addr和end_addr作为堆空间来用。参数 描述begin_addr 堆内存的起始地址end_addr 堆内存的结束地址从内存堆中申请用户指定大小的内存块rt_mallocvoid* rt_malloc(rt_size_...
2020-08-31 17:10:31
1420
原创 W25Q64Flash芯片
1、W25Q64Flash芯片介绍板上有个带SPI的FLASH产品,W25Q64,大容量64Mb的,也就是8M字节,大小:8M(Byte) (128块(Block),每块64K字节,每块16个扇区(Sector),每个扇区4K字节,每个扇区16页,每页256个 字节)特点:Flash芯片内的数据只能由1变0,不能由0变1。W25Q64FV是一款FLASH存储芯片,由32768页组成的存储芯片,其中每一页有256字节。每次最多可以一次写入256字节(一页);擦除则可以按扇区进行擦除(一..
2020-08-29 17:23:16
2123
原创 FAL (Flash Abstraction Layer) Flash 抽象层(3)
使用 FAL 的基本步骤如下所示:打开 FAL:从 Env 中打开 fal 软件包并下载到工程。 FAL 移植:定义 flash 设备、定义 flash 设备表、定义 flash 分区表。以下主要对步骤 2 展开讲解。 调用 fal_init() 初始化该库:移植完成后,可在应用层调用,如在 main 函数中调用。文件 说明 applications/main.c app 入口(fal 例程程序) ports fal 移植文件 ports/fal/fal_cfg.h
2020-06-18 23:50:53
1452
原创 记录RT-Thread 在 STM32 上实现 USB 虚拟串口(2)
驱动文件依赖于 BSP_USING_USBD(有的是BSP_USING_USBD_FS)这个配置项if GetDepend('RT_USING_HWCRYPTO'): src += ['drv_crypto.c'] if GetDepend(['BSP_USING_WDT']): src += ['drv_wdt.c']if GetDepend(['BSP_USING_SDIO']): src += ['drv_sdio.c']if GetDepend(['BS
2020-06-18 15:51:03
1651
原创 记录rtthread移植8742A(1)
选择使能以太网功能选择ping、ifconfig等特性使能lwip协议栈,目前rt-thread中支持协议栈最新的版本为2.1.0然后去在线包选择iot,主要选择ping和telnet server保存,退出,回到命令行窗口。输入命令pkg --update 等待更新包。问题没有宏定义问题因为没有复位,复位引脚配置错误...
2020-06-18 15:09:43
482
原创 C语言位操作
对某一位进行赋值,置0、置1、取反;整体赋值TEST = 0xff;TEST = (1<<7)TEST = (1<<7) | (1<< 3) | (1<< 2)指定与操作TEST & = 1<<7指定位清零TEST & = ~ (1 << 7)指定位置1TEST| = (1<<7)巧用C语言中的位操作方法:① 将寄存器的指定位置1或清0;任意位置1P...
2020-06-16 12:15:47
1111
原创 VScode使用
切换工作空间@echo offrem 放到相对的项目WorkSpace路径中。start Code.exe --user-data-dir "\WorkSpace\VSCode"rem 需要使用exit,不要使用pause继续,否则将和bat线程绑定。exit
2020-06-16 08:35:11
268
原创 git合并时冲突
<<<<<<< HEADnew new new new code=======old old old code>>>>>>> xxxxxxxxxxxxxxxxxxxxxxx分析:HEAD到 =======里面的new new new new code是自己的commit的内容=========到 >>>>>>里面的hehehe是下拉的内容根据需要删除代码就行了.
2020-06-15 22:54:39
429
原创 断言
1、(st->sockets[socket]->magic == SAL_SOCKET_MAGIC) assertion failed t function:sal_get_socket, line number:319在使用rtthread的AT组件使用esp32时,出现这个问题,可能原因是关闭套接字的指令两次。或者wifi断开后调用套接字关闭造成的/** * This function will get sal socket object by sal socket desc.
2020-06-02 17:29:01
633
原创 仿真器使用注意事项
接口和指示灯说明 指示灯状态 含义 绿色,以10Hz的频率闪烁 仿真器初始化 绿色,闪烁 仿真器工作中,当一条指令执行时,指示灯临时熄灭。因此,闪烁的速度由目标板的接口速度决定,在低速接口中,指示灯关闭的周期要比高速接口的长。 绿色,常亮 ...
2020-04-23 08:39:53
6467
原创 git解决.gitignore不生效
当我们将 .gitignore 文件配置好后,却往往不能失效。这是因为 .gitignore 只能忽略那些没有被追踪(track)的文件,因为 git 存在本地缓存,如果文件已经纳入了版本管理,那么修改 .gitignore 是不能失效的。那么解决方案就是要将 git 的本地缓存删除,然后重新提交。git rm -r --cached .git add .git commit -m "u...
2020-04-23 08:35:25
973
1
原创 本地服务器的搭建--apache-tomcat使用
apache-tomcat价绍Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当...
2019-12-07 21:33:52
1321
原创 linux使用工具
连接工具:SecureCRTSecureCRT使用SecureCRT自动保存日志SecureCRT 屏幕输出行数设置默认是500行,
2019-12-03 09:58:01
173
原创 STM32F1之ADC使用
目录一、使用过程中问题1、ADC数据会产生跳动解决办法:2、使用过程中ADC采集没有中间值,要么最大要么最小:二、ADC电压采集电压输入范围输入通道转换顺序触发源转换时间数据寄存器中断转换结束中断模拟看门狗中断DMA 请求电压转换三、代码使用1、adc值读取2、ADC的DMA多通道读取使用方法一、使用过程中问题1、ADC数...
2019-12-02 18:09:57
4523
1
nodepad++ 安装包
2023-01-10
MinGW-W64 GCC程序包、安装编译器操作方法
2023-01-10
jlink Segger.7z
2021-04-13
JLINK V11.rar
2020-04-21
JLink_Windows_V655a.zip
2019-11-22
SetupSTM32CubeProgrammer-1.0.0.7z
2019-11-22
固件升级工具PhoenixSuitV1.1.7z
2019-11-11
flash_download_tools_v3.6.3.rar
2019-11-11
example.rar
2019-08-31
W5500网络扩展板例程.rar
2019-08-18
6-STM32f4官方手册.rar
2019-06-19
零死角玩转STM32—F429.rar
2019-06-19
stm32CUbemax_v5.0linux.rar
2019-06-18
stm32CUbemax_v5.0.rar
2019-06-18
ESP8266系列模组用户手册-APIguide-ota说明
2019-03-18
android蓝牙apk控制蓝牙小车
2019-01-15
stm32f030数据手册
2019-01-09
N76E003编程参考文件
2019-01-09
零死角玩转STM32—F103霸道
2018-07-27
stm32f10x开发三手册
2018-07-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人