stm32相关内容

STM32 USB VCP(虚拟通信端口)

我使用 CubeMX for USB VCP 生成了“stm32f103c8t6"的代码,当我添加“CDC_Transmit_FS"命令发送数据时,windows10 无法识别该端口!我该怎么办?这是编译没有错误的代码: #include "stm32f1xx_hal.h"#include "usb_device.h"#include "usbd_cdc_if.h"int main(void){ ..
发布时间:2021-08-30 19:27:04 其他开发

在 STM32 上用 C 生成纳秒延迟

我正在使用 STM32F2 控制器,并且我正在与 ST7036 LCD 显示器,通过 8 位并行接口. 数据表说地址保持和建立时间之间应该有 20 纳秒的延迟. 如何在 C 中生成 20 纳秒的延迟? 解决方案 使用下面的 stopwatch_delay(4) 来完成大约 24ns 的延迟.它使用 STM32 的 DWT_CYCCNT 寄存器,该寄存器专门用于计算实际时钟滴答, ..
发布时间:2021-08-30 19:27:02 其他开发

STM32CubeMX USB CDC VCP?

我发现了大量的例子,但没有关于如何从 STM32MXCube 中“正确"做到这一点. 如何从 STM32CubeMX 为 USB CDC 虚拟 COM 端口通信创建骨架代码(如果可能,STM32F4 Discovery)? 解决方案 以 CDC 作为 USB 设备的 Discovery F4 STM32CubeMX 项目应该是开箱即用的.假设您使用最新的 STM32CubeMX 和库 ..
发布时间:2021-08-30 19:26:59 其他开发

用于传输数据的 USB DUAL CDC 端点

我只用一个 USB 设备模拟了两个 VCP.我可以在一个具有以下端点地址的 VCP 中发送数据. #define CDC_IN_EP 0x81/* EP1 for data IN */#define CDC_OUT_EP 0x01/* EP1 用于数据输出 */#define CDC_CMD_EP 0x82/* CDC 命令的 EP2 */ 我想知道是否可以使用其他端点地址在其他 VCP 中发 ..
发布时间:2021-08-30 19:26:56 其他开发

如何在STM32上获得时间间隔?

我想测量单个函数在 STM32 上需要多长时间.我唯一能找到的是SysTick_Handler.但是,这是一个周期性中断,但我需要的是获取时间间隔,如: long t1 = mcu_clock();睡眠(20);长 t2 = mcu_clock();长差异 = (t2 - t1); 我尝试过 C clock(),但它不起作用并且总是返回 -1.我该怎么做? 解决方案 首先,在启动时启用 ..
发布时间:2021-08-30 19:26:53 其他开发

通过应用程序跳转到 STM32 中的引导加载程序,即在引导模式下从用户闪存使用引导 0 和引导 1 引脚

我有固件升级的需求.我打算使用 USB DFU 类.但是在我的情况下,固件升级命令将来自 PC 应用程序.所以我需要切换到系统内存中的引导加载程序.最初我正在运行应用程序,因此它是从用户闪存启动的,即我为用户闪存配置了 Boot0 和 Boot 1 引脚.由于系统闪存中存在 DFU 引导加载程序,现在需要更改 Boot0 和 Boot1 引脚设置.有没有办法让 Boot 0 和 Boot 1 设置 ..
发布时间:2021-08-30 19:26:50 其他开发

无法在 STM32 上使用 FatFS 挂载 SD

我正在尝试使用 STM32F405 芯片写入 MicroSD 卡. 引脚连接正确,MicroSD 卡插槽上的每个引脚都可以使用 HAL_GPIO_WritePin 写入.(用示波器测量)我正在使用 CubeMX 为 TrueStudio 生成初始化代码,所以希望那里也一切正常.但是当我运行以下代码时,f_mount 返回 FR_DISK_ERR.MicroSD 卡可以写入和读取.如果我使用不同的 ..
发布时间:2021-07-17 19:24:40 其他开发

如何在用户定义的函数中使用格式化字符串?

我想编写一个函数,以类似于 printf/sprintf 使用格式化字符串的方式在 LCD 上打印字符. 解决方案 此答案将所有其他答案的最佳部分合二为一.考虑到所有因素,我认为这是做到这一点的最佳方式,并会在展示示例后进行更详细的解释. 总结: 这是一个完整的示例,包括函数中的基本错误检查.在这里,我创建了一个类似于 printf 的函数,名为 lcd_printf(),它的 ..
发布时间:2021-06-21 19:00:24 其他开发

stm32 printf 浮点变量

我想通过 usart 从 stm32f405 注销.在我的 syscall.c 文件中,我实现了通过 usart 打印的功能: int _write(int file, char *ptr, int len){int todo;for (todo = 0; todo ..
发布时间:2021-06-21 18:55:44 其他开发

从 C++ 中的另一个对象执行方法

首先请允许我介绍一下我的类结构.我正在为 ARM 设备 (STM32) 设计一个小库,我想实现几个对象来定义系统上可用的不同外设. class xGPIO : 公共外设{上市:xGPIO();xGPIO(GPIO_TypeDef * GPIOx1, uint16_t Pinx1);虚拟 ~xGPIO();无效(无效);无效关闭(无效);私人的:void xInitGPIO(void);}; 我 ..
发布时间:2021-06-12 19:25:03 C/C++开发

为什么STM32 gcc链接程序脚本会自动丢弃以下标准库中的所有输入节:libc.a,libm.a,libgcc.a?

从任何自动生成的STM32CubeMx生成的链接器脚本的底部: /*从标准库中删除信息*//丢弃/:{libc.a(*)libm.a(*)libgcc.a(*)} 从GNU Binutils ld(链接程序脚本)手册中, 3.6.7丢弃输出节: 特殊的输出节名称"/DISCARD/"可用于丢弃输入节.分配给名为"/DISCARD/"的输出节的任何输入节均不包含在输出文件中. 这3 ..
发布时间:2021-05-29 20:03:45 其他开发

为什么我的中断会被调用,但不会进入处理程序?

我正在尝试以中断模式接收来自USART的通信.调试器向我展示了在按键时调用了中断,但是执行陷入了向量表定义中. 我使用以下命令初始化我的usart. 静态无效MX_USART2_UART_Init(void){huart2.Instance = USART2;huart2.Init.BaudRate = 19200;huart2.Init.WordLength = UART_WORDLEN ..
发布时间:2021-05-16 19:49:13 C/C++开发

HAL_Delay()陷入无限循环

我被HAL_Delay()函数困住了.当我调用此函数HAL_Delay()时,控件陷入无限循环.在寻找问题时,我发现了这个问题 http://www.openstm32.org/forumthread2145#threadId2146 在此特别声明中,我引述“链接器文件存在问题,请使用所附的链接器.您需要分别映射两排内存,因此首先是SRAM1 96K,然后是32K SRAM2.我认为应 ..
发布时间:2021-05-15 21:10:50 其他开发

STM32Cube结果文件对GPIO IDR寄存器的特定地址定义在哪里?

我已经阅读了STM32Cube产生的STM32项目的解释,如本 然后,所有与GPIOA相对应的寄存器都由 声明 “#define GPIOA((GPIO_TypeDef *)GPIOA_BASE)" 根据以上信息,此头文件已经定义了GPIOA的原始地址,并声明了GPIOA的相应寄存器(如IDR,MODER,ODR等)的存在. 但是这些代码尚未明确定义这些GPIOA对应寄存器的地址 ..
发布时间:2021-05-13 18:39:40 其他开发

STM32H7 LAN8742 LwIP仅在加电后才能正常工作,而在复位后无法正常工作

我手头有一个奇怪的问题,以前从未见过.但是,我仍在尝试找出问题所在.我有一个STM32H753VIT和一个连接到它的LAN8742以太网控制器.我在NO-SYS模式下运行LwIP.它仅在冷启动后才能正常工作,但在硬件重置(按钮或ST-LINK探针)后无法正常工作.它运行一个简单的TCP回显服务器.如果运行,我可以对其进行ping操作,并且它会响应TCP客户端. 但是在硬件重置后,我不再可以对 ..
发布时间:2021-05-04 21:01:06 其他开发

在STM32的HAL中实现单按,长按和双按功能

我正在尝试实现单按,双按和长按功能,以执行不同的功能.到目前为止,我已经了解了单按和长按的逻辑,但是我不知道如何检测到双按.至于代码,我已经使用一个计数器实现了单按和长按,但是代码只在第一个if条件下停留. bool single_press = false;bool long_press = false;如果(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)){HAL_ ..
发布时间:2021-05-04 19:03:02 其他开发

STM32F103C8T6上的裸机LED如何闪烁?

我刚刚开始探索STM32 MCU.我想使BluePill(具有STM32F103C8T6 MCU)板上的LED闪烁.我怀疑我被某些东西误导了.根据F1系列参考手册,主要包括3个步骤: 为PORT(在此为PORTC)启用时钟 配置CNF/MODE寄存器 根据需要配置ODR寄存器,即引脚上的HIGH/LOW. 我已经按照手册在KEIL MDK中编写了代码,但是在加载后,代码没有运行,我 ..
发布时间:2021-05-04 19:02:56 其他开发

在STM32传输结束时,循环DMA内存中断将如何表现?

我想问一下,在以下情况下,STM32中的DMA SPI rx将如何运行.我有一个称为A的指定的(例如)96字节数组,该数组用于存储从SPI接收的数据.我打开循环SPI DMA,它在每个字节上运行,配置为96字节.是否有可能,当DMA填充我的96字节数组时,传输完成中断将消失,以快速将96字节数组复制到另一个-B,然后循环DMA将开始写入A(并销毁保存在B中的数据)?我想(每次从B中的A获取新数据时 ..
发布时间:2021-05-04 19:01:59 其他开发

如何调试STM32设备中的意外重置?

我正在用STM32F107芯片在C中进行一些开发,并且在某个时候,当我调用特定功能时,该设备开始复位.我没有调试器,调试只是通过串行端口的纯文本. 我使用了其他一些微控制器,在其中可以访问寄存器来查看复位的原因,但似乎找不到与该器件等效的器件.我知道Cortex-M3的硬件异常,但我不知道是否触发了其中之一,因为当我进入这些处理程序时,似乎无法通过usart发送文本(也许是因为我的TX功能会 ..
发布时间:2021-05-04 19:01:56 其他开发

尚未解决System Workbench STM32 Eclipse上的ERROR_DOWNLOAD_TASK_START_ISSUE

我有与这个问题完全相同的问题 问题是,在System Workbench中下载STM模型的固件时,下载失败,并显示ERROR_DOWNLOAS_TASK_START_ISSUE 我再次发布此问题的原因是: 1)该问题中给出的答案仅适用于特定的STM模型需要模式通用解决方案 2)这个问题已经在OpenSTM32 COmmunit论坛上被许多具有相同问题的人发布.到目前为止,没 ..
发布时间:2021-05-03 19:50:13 其他开发