stm32相关内容
我使用 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){
..
我正在使用 STM32F2 控制器,并且我正在与 ST7036 LCD 显示器,通过 8 位并行接口. 数据表说地址保持和建立时间之间应该有 20 纳秒的延迟. 如何在 C 中生成 20 纳秒的延迟? 解决方案 使用下面的 stopwatch_delay(4) 来完成大约 24ns 的延迟.它使用 STM32 的 DWT_CYCCNT 寄存器,该寄存器专门用于计算实际时钟滴答,
..
我发现了大量的例子,但没有关于如何从 STM32MXCube 中“正确"做到这一点. 如何从 STM32CubeMX 为 USB CDC 虚拟 COM 端口通信创建骨架代码(如果可能,STM32F4 Discovery)? 解决方案 以 CDC 作为 USB 设备的 Discovery F4 STM32CubeMX 项目应该是开箱即用的.假设您使用最新的 STM32CubeMX 和库
..
我只用一个 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 中发
..
我想测量单个函数在 STM32 上需要多长时间.我唯一能找到的是SysTick_Handler.但是,这是一个周期性中断,但我需要的是获取时间间隔,如: long t1 = mcu_clock();睡眠(20);长 t2 = mcu_clock();长差异 = (t2 - t1); 我尝试过 C clock(),但它不起作用并且总是返回 -1.我该怎么做? 解决方案 首先,在启动时启用
..
我有固件升级的需求.我打算使用 USB DFU 类.但是在我的情况下,固件升级命令将来自 PC 应用程序.所以我需要切换到系统内存中的引导加载程序.最初我正在运行应用程序,因此它是从用户闪存启动的,即我为用户闪存配置了 Boot0 和 Boot 1 引脚.由于系统闪存中存在 DFU 引导加载程序,现在需要更改 Boot0 和 Boot1 引脚设置.有没有办法让 Boot 0 和 Boot 1 设置
..
我正在尝试使用 STM32F405 芯片写入 MicroSD 卡. 引脚连接正确,MicroSD 卡插槽上的每个引脚都可以使用 HAL_GPIO_WritePin 写入.(用示波器测量)我正在使用 CubeMX 为 TrueStudio 生成初始化代码,所以希望那里也一切正常.但是当我运行以下代码时,f_mount 返回 FR_DISK_ERR.MicroSD 卡可以写入和读取.如果我使用不同的
..
我想编写一个函数,以类似于 printf/sprintf 使用格式化字符串的方式在 LCD 上打印字符. 解决方案 此答案将所有其他答案的最佳部分合二为一.考虑到所有因素,我认为这是做到这一点的最佳方式,并会在展示示例后进行更详细的解释. 总结: 这是一个完整的示例,包括函数中的基本错误检查.在这里,我创建了一个类似于 printf 的函数,名为 lcd_printf(),它的
..
我想通过 usart 从 stm32f405 注销.在我的 syscall.c 文件中,我实现了通过 usart 打印的功能: int _write(int file, char *ptr, int len){int todo;for (todo = 0; todo
..
首先请允许我介绍一下我的类结构.我正在为 ARM 设备 (STM32) 设计一个小库,我想实现几个对象来定义系统上可用的不同外设. class xGPIO : 公共外设{上市:xGPIO();xGPIO(GPIO_TypeDef * GPIOx1, uint16_t Pinx1);虚拟 ~xGPIO();无效(无效);无效关闭(无效);私人的:void xInitGPIO(void);}; 我
..
从任何自动生成的STM32CubeMx生成的链接器脚本的底部: /*从标准库中删除信息*//丢弃/:{libc.a(*)libm.a(*)libgcc.a(*)} 从GNU Binutils ld(链接程序脚本)手册中, 3.6.7丢弃输出节: 特殊的输出节名称"/DISCARD/"可用于丢弃输入节.分配给名为"/DISCARD/"的输出节的任何输入节均不包含在输出文件中. 这3
..
我正在尝试以中断模式接收来自USART的通信.调试器向我展示了在按键时调用了中断,但是执行陷入了向量表定义中. 我使用以下命令初始化我的usart. 静态无效MX_USART2_UART_Init(void){huart2.Instance = USART2;huart2.Init.BaudRate = 19200;huart2.Init.WordLength = UART_WORDLEN
..
我被HAL_Delay()函数困住了.当我调用此函数HAL_Delay()时,控件陷入无限循环.在寻找问题时,我发现了这个问题 http://www.openstm32.org/forumthread2145#threadId2146 在此特别声明中,我引述“链接器文件存在问题,请使用所附的链接器.您需要分别映射两排内存,因此首先是SRAM1 96K,然后是32K SRAM2.我认为应
..
我已经阅读了STM32Cube产生的STM32项目的解释,如本 然后,所有与GPIOA相对应的寄存器都由 声明 “#define GPIOA((GPIO_TypeDef *)GPIOA_BASE)" 根据以上信息,此头文件已经定义了GPIOA的原始地址,并声明了GPIOA的相应寄存器(如IDR,MODER,ODR等)的存在. 但是这些代码尚未明确定义这些GPIOA对应寄存器的地址
..
我手头有一个奇怪的问题,以前从未见过.但是,我仍在尝试找出问题所在.我有一个STM32H753VIT和一个连接到它的LAN8742以太网控制器.我在NO-SYS模式下运行LwIP.它仅在冷启动后才能正常工作,但在硬件重置(按钮或ST-LINK探针)后无法正常工作.它运行一个简单的TCP回显服务器.如果运行,我可以对其进行ping操作,并且它会响应TCP客户端. 但是在硬件重置后,我不再可以对
..
我正在尝试实现单按,双按和长按功能,以执行不同的功能.到目前为止,我已经了解了单按和长按的逻辑,但是我不知道如何检测到双按.至于代码,我已经使用一个计数器实现了单按和长按,但是代码只在第一个if条件下停留. bool single_press = false;bool long_press = false;如果(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)){HAL_
..
我刚刚开始探索STM32 MCU.我想使BluePill(具有STM32F103C8T6 MCU)板上的LED闪烁.我怀疑我被某些东西误导了.根据F1系列参考手册,主要包括3个步骤: 为PORT(在此为PORTC)启用时钟 配置CNF/MODE寄存器 根据需要配置ODR寄存器,即引脚上的HIGH/LOW. 我已经按照手册在KEIL MDK中编写了代码,但是在加载后,代码没有运行,我
..
我想问一下,在以下情况下,STM32中的DMA SPI rx将如何运行.我有一个称为A的指定的(例如)96字节数组,该数组用于存储从SPI接收的数据.我打开循环SPI DMA,它在每个字节上运行,配置为96字节.是否有可能,当DMA填充我的96字节数组时,传输完成中断将消失,以快速将96字节数组复制到另一个-B,然后循环DMA将开始写入A(并销毁保存在B中的数据)?我想(每次从B中的A获取新数据时
..
我正在用STM32F107芯片在C中进行一些开发,并且在某个时候,当我调用特定功能时,该设备开始复位.我没有调试器,调试只是通过串行端口的纯文本. 我使用了其他一些微控制器,在其中可以访问寄存器来查看复位的原因,但似乎找不到与该器件等效的器件.我知道Cortex-M3的硬件异常,但我不知道是否触发了其中之一,因为当我进入这些处理程序时,似乎无法通过usart发送文本(也许是因为我的TX功能会
..
我有与这个问题完全相同的问题 问题是,在System Workbench中下载STM模型的固件时,下载失败,并显示ERROR_DOWNLOAS_TASK_START_ISSUE 我再次发布此问题的原因是: 1)该问题中给出的答案仅适用于特定的STM模型需要模式通用解决方案 2)这个问题已经在OpenSTM32 COmmunit论坛上被许多具有相同问题的人发布.到目前为止,没
..