- 博客(21)
- 收藏
- 关注
原创 SPI通信失败问题记录
平台:N32G430和nRF52840两块MCU进行SPI通信问题:SPI收发数据错乱、接收到的数据左移或者右移一位。以及不能正常通信问题本质问题:对SPI通讯协议片选引脚不熟悉,硬件片选和软件片选区别不了解。
2024-10-14 15:29:27 206
原创 VScode打开keil工程波浪线报错问题
最后一步:可能还会有部分文件找不到头文件,这是因为使用keil打开的工程在keil里系统自动包含了路径,而在vscode里面没有被包含,需要我们手动添加,具体添加的文件路径查看报错。看哪些文件找不到,注意新包含的路径也需要将路径格式从\改为/。4.关键步骤:将keil工程目录下生成的.vscode文件,复制到根目录,并且修改根目录下.vscode里c_cpp_properties.json文件,修改路径格式。直接将整个工程文件拖到VScode打开,或者有添加右键属性的,直接右键工程,在vscode打开。
2024-09-06 17:10:50 445
原创 IS31FL3743A介绍
IS31FL3743A 是一款通用的 18×n (n=1~11) LED 矩阵,可通过 1MHz I2C 兼容接口进行编程。每个 LED 均可使用 8 位 PWM 数据和 8 位 DC 缩放数据单独调光,从而实现 256 级线性 PWM 调光和 256 级 DC 电流可调级别。FEh:用于解除写锁定,写寄存器前需向该寄存器写入0xC5,解除锁定,FDh允许修改一次,修改FDh后FEh将立即重置为0x00。再次写入FDh寄存器需重新解锁。FDh:命令寄存器,上电被锁定,写入该寄存器前需要先解锁。
2024-08-28 20:58:46 991
原创 nRF52 CLI命令行界面介绍与使用
*用于创建子命令集的宏。它必须在任何函数体之外使用*//*name:子命令集的名称。*/#define nrf_cli_warn //向 CLI 打印警告消息。#define NRF_CLI_WARNING NRF_CLI_VT100_COLOR_YELLOW //警告颜色 printf。nrf_cli_fprintf - 将用户格式化的数据流打印到 CLI。nrf_cli_print - 使用默认终端字体颜色打印消息,并将光标移动到下一行。
2024-08-20 09:39:00 271
原创 NRF52840 RTT输出不了日志问题
(2)如果使能了Deferred,那么调用NRF_LOG_INFO等API的时候,先把打印数据放在RAM中,待到main函数中的NRF_LOG_PROCESS完成时打印信息。(1)如果不使能Deferred,调用NRF_LOG_INFO等API的时候,跟着NRF_LOG_FLUSH();5.在main函数调用该语句打印输出日志UNUSED_RETURN_VALUE(NRF_LOG_PROCESS());4 输出打印语句,配置是否实时打印。
2024-08-16 13:53:58 254
原创 C语言if条件不成立但里面语句能被执行原因分析
1、当两个变量systick_count_1s 和recevie_delay_time中有一个变量类型为unsigned无符号类型时,相减是个负数,会被括号强制把负号去掉,所以条件成立,进入if里。2、定义的变量类型和赋值数据类型要一致,如:定义uint8_t类型的变量,却复制bool类型的数据,则也会有可能导致if条件判断异常。
2024-05-30 11:04:41 533
原创 debug卡死在0x08000764 BEAB BKPT 0xAB汇编指令中
tips:如果使用了STM32CubuMX生成代码,图形化修改配置重新生成代码时,默认不勾选microLIB,即使之前的代码是勾选上的也会自动取消勾选。这一句汇编语句中,主要问题都是与在单片机上使用printf()函数有关。stm32代码调试时发现代码卡在下面这条汇编语句中。
2023-11-29 09:53:14 372 1
转载 STM32串口第一个字节数据丢失问题
串口发送必须先检测状态,否则第一个字节无法发出,发送完毕,必须检测发送状态是否完成,否则,发送不成功,使用stm32f10x调试串口通讯时,发现一个出错的现象,硬件复位重启之后,发送测试数据0x01 0x02 0x03 0x04..接收端收到的数据为:0x02 0x03 0x04,第一个数据丢失。,应该也能消除错误。当然,也有别的方法,比如先清除TC状态位,或是,在write USART_DR之后,加入一个小延时,让数据发送完毕,应该也能间接排除这个错误。2、使用单步调试,单步运行各个发送指令,都正常。
2023-11-26 15:31:47 890 1
原创 MQTT移植stm32
解决办法:1. 在platform_net_sock.h文件中定义socklen #define socklen_t unsigned int2.交换nettype.c文件中#include "nettype_tcp.h"和#include "mqtt_log.h"的位置注意:如果还报错size_t未定义则与步骤一一样,在platform_net_socket.h里自己添加头文件#include "stdlib.h"
2023-11-17 13:40:28 979 1
原创 FreeRTOS移植到stm32
这 个 文 件 夹 , 双 击 打 开 , 在 其 根 目 录 下 找 到 这 个 “FreeRTOSConfig.h。(1).修改与对应开发板的头文件 , 如果是使用 STM32F1。,同理是 使用了其它系列的开发板,则包含与开发板对应的头文件即可。的一些头文件,将它直接拷贝 到我们新建的 FreeRTOS。(1).包含#include "FreeRTOS.h"头文件。”文件夹,将它们拷贝到我们新建的。文件’,将它们拷贝到我们新建的。”文件,然后拷贝到我们工程的。”文件夹,它是我们需要用到。
2023-11-16 15:14:34 166 1
原创 移植stm32f103RCT6工程
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 下面,将里面 startup_stm32f10x_hd.s 文件复制到。注意:根据不同的容量选择不同的启动文件,flash>=256k(大容量,选择hd),64
2023-11-14 22:49:07 808 1
转载 Undefined Reference to Typeinfo
在项目中遇到了这样一个问题:C++文件编译都OK,但链接的时候报错:undefined reference to `typeinfo for xxx’。typeinfo是C++中的RTTI(RunTime Type Identification)机制中记录类型信息用的,dynamic_cast和typeid操作符会使用这些信息。以”undefined reference to typeinfo”为关键字在网络上搜索,大多数都是说有虚函数定义了但是未实现导致的。但是我的代码显然不是这个情况。
2023-10-21 19:25:29 1043 1
转载 交叉引用头文件报错
当你的代码报警未定义但是你明明已经引用了头文件,那多半是这个原因。要避免头文件交叉包含,如要用到对方类型,我们可以将 类型定义放到 一个公共头文件,如要用到对方的类我们可以使用前置申明并在cpp源文件中引用头文件。下面定义了2个类classA,classB,并在类classA头文件中定义IntA类型,在classB头文件中定义IntB类型,由于两个类都用到了对方头文件中定义的类型因此头文件又相互引用。我们在编写C/C++代码时,如头文件交叉引用将产生未定义报警,但是导致未定义报警的原因是什么呢。
2023-09-18 15:05:51 294
原创 交叉编译tslib遇到问题
参考网上说是没配置环境变量,配置如下代码后问题解决。经过问题查找,发现是配置编译时工具链指定错误。修改成开发板指定工具链命令。
2023-09-08 22:07:48 376 2
原创 cmake学习参考手册
https://subingwen.cn/cmake/CMake-primer/https://subingwen.cn/cmake/CMake-advanced/?highlight=cmake
2023-08-23 16:19:27 86 1
原创 Windows平台vscode中cmake链接动态库失败问题
在vscode中,cmake 和make都能正常通过,但是在最后执行build目录下app.exe文件时出现错误,没有输出预期结果,项目文件树及CMakeLists.txt内容如下图所示:
2023-08-18 10:39:43 1058 1
原创 C++学习记录
当父类写有虚函数时,此时父类中会保存有一个指向虚函数表的指针,这个虚函数表保存着父类虚函数入口地址,当子类继承父类时,会继承这个指向虚函数表的指针,如果子类中没有重写虚函数,则该虚函数表保存的仍然是父类的虚函数入口地址,当子类中重写父类中的虚函数,则该虚函数表中的虚函数入口地址被子类中的虚函数地址覆盖,也就是说此时存放的是子类中的虚函数入口地址(理解应该是函数调用时候动态改变虚函数表中虚函数入口地址)函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。
2023-07-18 22:19:33 1015 1
原创 嵌入式C语言高级知识点总结
预处理, 展开头文件/宏替换/去掉注释/条件编译 (test.i main .i)编译(gcc -s), 检查语法,生成汇编 ( test.s main .s)汇编(gcc -c), 汇编代码转换机器码 (test.o main.o)
2023-04-18 15:15:38 2915 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人