ADC+DMA 目标数组无更新 解决办法
@[toc] 代码结构优化12345678910111213141516171819202122/* USER CODE BEGIN Header *//** ****************************************************************************** * @file : adc_dma.c * @brief : ADC with DMA implementation for STM32F7 series ****************************************************************************** * @attention * - STM32F7 L1-cache注意事项: * - 开启D-cache会导致DMA数据不更新 * - 解决方案: * - 使用DTCM内存(0x20000000) * - 手动维护cache一致性(SCB_InvalidateDCache_by_...
HAL_DMA_ERROR_FE错误代码解决方法
[toc] 错误场景: 使用STM32F7芯片 使用CUBE生成配置 使用如下链接代码 https://download.csdn.net/download/qq_39665253/77125064 具体为DMA+USART+FIFO(软件编写)+双串口。将接受到的数据发送回串口助手中。 表面上看收发正常。实际应用时(MODBUS多从机应用),总会丢失数据。debug看串口错误中断,发现EeeoreCode错误代码为10如何定位进入错误中断前的代码,看下面链接 https://blog.csdn.net/u013181595/article/details/69523331 定位进入错误中断代码,可找到这段代码。即进入了FIFO错误中断了观察CUEB串口设置,并没有使用FIFO。 CUBE生成代...
【ARM V6编译器 编译汇编代码出错解决办法】
@[toc] https://www.cnblogs.com/pengdonglin137/p/3603166.html看着办 12345678910111213141516171819202122232425262728293031323334//THUMB指令不支持汇编内联//采用如下方法实现执行汇编指令WFI void WFI_SET(void){ asm("WFI"); }//关闭所有中断(但是不包括fault和NMI中断)void INTX_DISABLE(void){ asm ( "CPSID I" "BX LR" );}//开启所有中断void INTX_ENABLE(void){ asm ( "CPSIE I" "BX LR " );}//设置栈顶地址//addr:栈顶地址void MSR_MSP(u32 addr) {...
CUBE 配置SDRAM 无法选择地址问题解决办法
@[toc] 如图所示:地址没有办法选择这个时候一般是需要选择的引脚已经被使用导致的。我这里是PF12被使用为其他功能导致不可填写地址取消之后既可使用 SDRAM具体配置具体要使用哪些引脚。一个办法是新建一个CUBE工程,配置后查看哪些引脚被使用。另一个直接查看别人生成好的代码中运用了哪些引脚 1234567891011121314151617181920212223242526272829303132void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef *hsdram){ GPIO_InitTypeDef GPIO_Initure; __HAL_RCC_FMC_CLK_ENABLE(); //使能FMC时钟 __HAL_RCC_GPIOC_CLK_ENABLE(); //使能GPIOC时钟 __HAL_RCC_GPIOD_CLK_ENABLE(); //使能GPIOD时钟 __HAL_RCC_GPIOE_C...
AS5600 12 位可编程非接触式电位器
[toc] 输入引脚 (DIR) 选择与旋转方向有关的输出极性。如果 DIR 接地,则输出值随顺时针方向旋转而增加。如果 DIR 连接到 VDD,输出值会随着逆时针旋转而增加。 最大角度可编程 18° 至 360° 12 位 DAC 输出分辨率 模拟输出与 VDD 或 PWM 编码数字输出成比例 vcc 3.3v PGO 编程选项(内部上拉,连接到 GND = 编程选项 B) DIR 数字输入方向极性(GND = 值顺时针增加,VDD = 值逆时针增加)
STM32F7 使用 FAL 配置片上FLASH
[toc] 使用STM32F767芯片 加载RTT 3.15完整版,采用ENV工具,用KEIL加载工程,使用FAL配置片上FLASH,采用ARMV6编译器 优化等级-0 工程BSP目录下运行env 输入menuconfig进入菜单USER DRIVer CONFIG 是我自己编写的,没有用 从截图所示进入 使能 on-chip FLASH 从截图所示进入 按空格使能,按回车进入配置。如截图所示进行配置 进行保存 使用SCONS命令 无修改进行编译运行,有三个错误 fal_flash.c 47行修改如下 123log_d("Flash device | %*.*s | addr: 0x%08lx | len: 0x%08x | blk_size: 0x%08x |initialized finish.", FAL_DEV_NAME_MAX, FAL_DEV_NAME_MAX, device_table[i]->name, (unsigned long)device_table[i]->add...
Vscode ESP-ID 添加自定义组件解决办法
@[toc] 添加方法ESP-IDF 在搜索所有待构建的组件时,会按照 COMPONENT_DIRS 指定的顺序依次进行,这意味着在默认情况下,首先搜索 ESP-IDF 内部组件(IDF_PATH/components),然后是 EXTRA_COMPONENT_DIRS 中的组件,最后是项目组件(PROJECT_DIR/components)。如果这些目录中的两个或者多个包含具有相同名字的组件,则使用搜索到的最后一个位置的组件。这就允许将组件复制到项目目录中再修改以覆盖 ESP-IDF 组件,如果使用这种方式,ESP-IDF 目录本身可以保持不变。 我提供一种正确设置后还是无法编译通过的方法 https://docs.espressif.com/projects/esp-idf/zh_CN/v4.4.1/esp32/api-guides/build-system.html#id18可以尝试先清除工程编译再编译一次既可
KEIL5 编译器AC6 使用RT-THREAD操作系统 使用组件CmBacktrace方法+addr2line使用
@[toc] 最新解决方案:复制里面代码到对应源文件并编译既可 https://github.com/armink/CmBacktrace/pull/62https://github.com/armink/CmBacktrace/edit/master/cm_backtrace/cm_backtrace.chttps://github.com/armink/CmBacktrace/edit/master/cm_backtrace/cmb_def.h 编译目录下打开ENV工具 输入scons --pyconfig 点击Jump to List ites搜索CmBacktrace双击 配置如下,不要使用GB18030编码,AC6不支持显示,会有警告 点击SAVE CMD中显示 Loaded configuration ‘.config’Configuration saved to ‘.config’Configuration saved to ‘.config’ ENV中输入 pkgs –update 1.输入 scons --target=...
RTT各种错误排查(个人方法)
[toc] 试图切入ARM状态造成的用法Fault 问题:1.可能是内存泄漏 程序中有野指针,导致堆栈破坏; 个人工程中 排查发现为数组拷贝溢出数组大小,野指针导致堆栈破坏。 相应报错可能有: 1.RT_ASSERT 断言死机 2.rt_object_get_type((rt_object_t)thread) == RT_Object_Class_Thread) has assert failed at 都是内存泄漏,导致其他变量被改写。导致错误。 3.使用memchec命令 打印Memory block wrong: 怀疑到内存管理算法问题,改变内存管理算法。报错会不一样哦。 sr: 0x00000000r00: 0x20001268r01: 0x10000000r02: 0xf0000000r03: 0x00000000r04: 0x0801a130r05: 0x0801a130r06: 0x00000000r07: 0x0000008cr08: ...
ART-PI在KEIL的使用教程(个人笔记)
[TOC] ART-PI在KEIL的使用教程(个人笔记) 个人笔记,仅作为个人记录 第一步 下载源码 git clone https://gitclone.com/github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi.git 网站 https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi 第二步 查看源码手册说明 路径: sdk-bsp-stm32h750-realthread-artpi\documents 原理图与扩展IO说明 sdk-bsp-stm32h750-realthread-artpi\documents\board 查看UM5001-RT-Thread ART-Pi 快速上手.md 确保开发板功能正常 第三步 连接MSH串口使用控制台 xshell7 连接串口 第四步 编译keil工程 按照链接步骤执行,编译 https://art-pi.gitee.io/website/docs/#...