STM32上bxCAN i/f的非平凡示例代码?

我正在使用STM外围库来设置和使用CANBus。问题是我必须在发送数据包之间设置延迟,否则我将开始丢弃数据包。加入读取状态循环等似乎没有任何效果。有没有人有一个不包括添加幻数延迟的工作示例?这不是CAN或STM32特有的,而是关于控制微控制器中发生事件的频率 有几种方法可以解决此问题: 1) 使用计时器 设置一个定时器,使其以您想要的传输速率生成中断。(即每10毫秒)使用中断触发传输代码。请注意,您的中断服务程序应该尽可能短;它可以简单地设置由主循环检查的“go”标志,设置后,清除标志,传输,然

STM32L151-调试器在错误地址启动。。有时

我刚开始研究STM32L151微控制器。我已将调试器设置为在第一条指令(非主指令)中断,但当我开始调试时,程序计数器停止在0x1ff00b84,它甚至不是闪存的一部分(从0x8000000->0x801000开始) 它变得很复杂,因为当我尝试重置调试会话(不再下载程序)时,有几次它最终会在启动文件(startup_stm32l1x_md.s)中的第一条指令处停止,并且一切都会顺利运行,直到下一次我需要对设备进行编程并再次启动调试器 我将CoIDE与编译器“GNU工具ARM嵌入式4.8 2014q

STM32L476 LCD配置和显示

我已经使用STM Cube配置了我的电路板,包括LCD引脚。所有的东西都是绿色的,所以我觉得很好。现在我想用下面的代码显示一些数据。但无论我把什么数据放在液晶显示器上都没有意义的东西 HAL_LCD_Init(&hlcd); uint32_t counter = 0; for(counter = LCD_RAM_REGISTER0; counter <= LCD_RAM_REGISTER15; counter++) { HAL_LCD_Write(&hlcd,cou

STM32-RS485请求响应

我试图向测量设备发送请求,并使用UART中断接收它的响应。尽管通信不稳定,但我收到的响应不完整或损坏。我不确定,但我认为这是因为切换驱动器启用信号。你能看看我的代码,给我一些建议我做错了什么 这是我的密码: int main(void){ HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART3_UART_Init(); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);

从STM32 Nucleo-F767ZI[Ubuntu]中的USB虚拟COM读取数据

我已经写了一个程序,通过USB端口CN13传输数据,使用这个。我无法看到USB虚拟COM端口上的数据。当我连接ST-LINK和虚拟COM端口时,只有一个USB设备ST-LINK在尝试dmesg | grep USB时被识别。我在YouTube上看过很多基本的视频,显示虚拟COM USB端口检测在没有安装任何驱动程序的情况下进行。STM32 MOOCs使用Windows,但我安装了Ubuntu 20.04。我尝试了一些堆栈溢出。有谁能指导我如何克服这个问题吗?我找到了一种使用USB端口进行通信的方

spi时钟不可用stm32f0

在stm32f051r8上配置SPI时出现问题。 事实上,我已经编写了孔初始化代码,但我看不到时钟的作用域。。。 我只是尝试将PB13配置为时钟的备用功能,但它不起作用 你能帮我吗? 非常感谢 void spi_conf() { GPIO_InitTypeDef GPIO_InitStructure; SPI_InitTypeDef SPI_InitStructure; /* Enable SPI clock, SPI1 */ RCC_AHBPeriphClockCmd(RCC_A

双常规同步模式STM32中两个DMA ADC通道的使用

我想实现ADC1、ADC2和stm32f303发现的两个DMA ADC通道的双常规同时模式 在CubeMX示例中: 需要使用两个DMA通道(一个用于ADC主通道,一个用于ADC从通道) 也可能:这是在高负载情况下的建议配置 ADC转换速率和使用其他DMA通道的应用 密集地 根据AN4195 使用DMA时,有两种可能的情况:•使用两个 主设备和从设备的独立DMA通道。每个ADC(在这种情况下, MDMA[1:0])必须保持清除状态。第一个DMA信道用于 从ADC_DR读取主ADC转换数据,以及DM

STM32获得稳定的PWM频率和占空比

我用这些值配置了F401RB核子板定时器4 PWM输出变化很大,频率在40kHz和41.67 kHz之间,占空比在50%和52%之间。 有没有办法实现更好的稳定性 考虑到Sealese逻辑,是LA在捕获实际输出时滞后吗?您正试图以1 MHz采样率读取40 KHz信号,换句话说,您的信号每个周期只有25个采样。如果在读取特定周期时出现+/-1错误(由于信号和采样之间完全不同步,因此始终存在这种错误的可能性),则显示频率将关闭1/25-38461 Hz或41667 Hz 如果要将准确频率确定在1%

STM32F4 USART1不';无法正常工作并返回垃圾数据

我正在尝试使用STM32F407 USART1外围设备,但它无法正常工作。我已经阅读了很多次数据表,但我找不到任何解决方案 我使用FTDI232进行通信。我的连接正确,我在MSP430上使用此连接。在代码中,我现在不使用DMA,因为我不知道当前如何配置DMA(用于多个通信) 我几乎为所有行添加了注释。 我的错在哪里?你能帮我吗 #include "stm32f4xx.h" // Device header #include "stm32f4xx_hal.h"

Stm32 如何确保所有数据都通过can总线发送和接收?

我在stm32f3和变送器上使用can总线。我通过装有2个设备的1Mb/s can总线发送和接收数据 我用示波器分析了线路,没有发现任何问题。但是如何确保发送的每个数据都已收到?您可以定义一个计数器(1,2,3..),并检查另一侧所有数字的到达情况。您可以定义一个计数器(1,2,3..)并检查另一侧所有数字的到达情况。如果您通过示波器观察到消息正在传输,那么如果您想确保所有数据都在传输,您应该处理总线错误。如果没有错误,一切都在传输中 有关CAN总线错误处理的更多信息,请参见如果您通过示波器观察

无法在stm32f030rc上将PC15用作GPIO输入

我正在使用stm32f030rc进行一个项目。我需要使用PC15作为GPIO输入,但似乎我无法 我知道PC14/PC15与LFE振荡器共用,但我当然不使用该功能。此外,我能够在PC14 GPIO上读取正确的引脚电平。在关于我的型号的datasheed中,PC15引脚标记为I/O,OSC32_输出作为附加功能:它可以用作输入吗 作为参考,这是我用来测试功能的C代码;我正在使用libopencm3进行初始化 #包括 #包括 静态无效时钟设置(无效) { rcc时钟设置输入输出48mhz(); /*启

Stm32 如何将浮点值转换为字符串值

我正在尝试将浮点值转换为字符串。为此,我使用了'ftoa',但它显示了类似'undefined reference to ftoa()'的错误。我还使用了'gcvt()'代替了ftoa,但不起作用。有什么建议吗 谢谢。您可以使用sprintf。但效率不高。如果对您来说足够好:

Stm32 使用FATFS将.BMP写入SD卡。失真图像

我为STM32编写了一个程序,使用FATFS将.bmp文件写入SD卡。我正在使用STM32CubeIDE及其生成的代码。我在线将.bmp文件转换为字节数组,然后将数组复制到我的程序中 如果我一次写入全部数据,一切都正常。图像显示在SD卡上且未失真 res = f_write(&SDFile, bmp , 8864, (void *)&byteswritten); 如果我将数据分为两部分写入,则图像会显示在SD上,但其上面的行会右移一点 res = f_write(&S

使用HAL对STM32L0进行UART环回测试

我不熟悉单片机编程。我想使用HAL测试UART环回(镜像)。IAR项目由CubeMX为STM32L071RZT6生成。此代码位于主循环中: HAL\u UART\u传输(&huart2,str1,51000); HAL_UART_接收(和huart2、str2、51000) 我只得到str2中填充的第一个元素(以null结尾的字符串)。我怎样才能修好它 /* USART2 init function */ static void MX_USART2_UART_Init(void) {

stm32h7微控制器的sdram读/写问题

我使用stm32h743ii微控制器,并与512mb的外部sdram(微米-MT48LC64M8A2P)连接 我已经使用cubemx创建了初始代码,并通过参考stm32h7固件提供的示例代码来执行基本的读写测试代码。 初始化代码: void MX_FMC_Init(void) { FMC_SDRAM_TimingTypeDef SdramTiming; /** Perform the SDRAM1 memory initialization sequence */ hsd

Stm32 MAX144 ADC读写的寄存器值和内存地址

我使用的是MAX144 ADC,数据表中没有提供有关读取ADC值的控制寄存器的信息。我使用STM32L452RE微控制器和SPI从ADC获取数据。ADC的数据表如下: 遇到相同问题的任何人请指导 我的想法是为SPI RX创建一个2字节的缓冲区,并在其中存储值。但是我不知道应该给它分配什么控制寄存器地址。转换数据没有存储在寄存器集中。当您将CS拉低时,SCLK的状态将确定wither,它在从高到低的转换后保持转换产品,以启动转换产品或在第二个时钟脉冲的下降沿开始流式传输转换产品 数据表的第9页上记

STM32F103C8T6无法与HD44780通信

我试图控制一个HD44780 16X2 LCD(4位 通信)使用STM32F103C8T6。 我是这样连接LCD的: RS=>PA0 EN=>PA2 RW地面 D7=>PB7 D6=>PB6 D5=>PB5 D4=>PB4 液晶显示器什么也不显示。问题出在哪里?有人知道这个问题吗 这是我的密码: #include "delay.h" #include "stm32f10x.h" // Device header void lcd_command(unsigned char command);

STM32F4 ADC多模,主模块由定时器触发

首先:我正在使用STM提供的CubeIDE工具链 一些STM32微控制器具有多个ADC(例如STM32F446xx),并提供多规则同时模式(双模式或甚至三模式),其中ADC1被设置为主ADC,并触发处于从属配置的其他ADC 当我在CubeIDE中使用此配置时,我仍然可以将ADC1的触发器设置为计时器,而不是在连续模式下使用它。这种配置有意义吗?我也可以为所有我想在同一个计时器上同步的ADC设置触发器,不是吗? 因此,按照我的理解,只有当我想让它在连续转换模式下运行并同步所有ADC时,多模模式才有

HC-SR-04,带STM32

SR04带stm32的超声波距离传感器。 当我将其与STM32一起使用时,我将其用作输入捕获的bothedge。我测量回音针的高时间。 我认为这是个错误 当我将阿迪诺与pulsein一起使用时,我将时间除以29.1。我的测量结果足够准确,但当我使用STM32将时间除以29.1时,测量结果非常错误。我是用58.2除的。这次我得到了更精确的数值。有什么区别 非常感谢。将回波脉冲的持续时间除以58是正确的,如下数据表所述 您可以通过发送触发信号和 接收回波信号。公式:uS/58=厘米或uS/148=英

半双工/单工模式STM32F4中停用SPI的正确方法

我试图在一定时间后将STM32F4从从机更改为主机,以主机的身份发送消息,然后返回到从机。我发现,将SPI配置为从属并启用SPI会导致时钟在我将设备配置回主设备时意外发送时钟。没有我发送任何数据。我认为这是因为我要么初始化外围设备错误,要么去初始化错误 这是我的主回路 while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ MX_SPI1_Init(); /* This configure

STM32F0发现USART发送错误的值

我在STM32世界上迈出了第一步,而且非常艰难。我经营我的探索板。当我学会如何控制GPIO和中断时,我决定和USART一起玩。地狱开始了。我花了两个晚上的时间来解决像串行通信这样的简单问题 我所拥有的: 配置的GPIO 配置的USART 来自标准STM库的时钟-HSI 48 MHz 我在书中看到了人物 测试的变速器参数:8N1 9600和115200 正如您从代码中看到的,我希望在得到“\ux”时看到一个“A”字符。在我看来,这是波特率的问题,但我只得到了这个错误的字符。当我将BRR更改为完全错

在STM32F429上重新运行从ADC到内存的DMA传输

我配置了DMA2流0,以便它将给定数量的样本从ADC3(由TIM2上升沿触发)传输到内存,并且在完成传输后,会发生一个中断,其中我对采集的样本进行计算 除了我希望能够重复整个过程之外,一切都按照预期进行。传输应该由用户命令启动(按下按钮,或者最终通过USART发送命令),因此我不能在循环模式下使用DMA来完成此任务 据我所知,通过修改一些寄存器并重新启动DMA和ADC,可以重新运行传输,但我无法完成任务。为了实现我的目标,我必须运行的正确指令集是什么

如何创建用于在stm32f4xx平台上配置已定义端口的函数?

我正在将stm32f4xx与HAL库一起使用,并且我已经配置了如下一些端口: #define Led1 GPIO_PIN_1 #define Led1_Port GPIOC #define Led2 GPIO_PIN_2 #define Led2_PoRT GPIOE GPIO_InitStruct.Pin = Led1; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO

LIN中断检测标志对于ARM STM32设备意味着什么?

STM32F4xx系列中有一个UART错误标志 位8 LBD:LIN中断检测标志 没有关于这方面的进一步资料。这对于UART意味着什么?来自参考手册RM0090: LIN接收 在USART接口上实现了断路检测电路。这个 检测完全独立于普通USART接收机。A. 无论何时,无论是在空闲状态还是在空闲状态,都可以检测到中断 框架 当接收器启用时(在USART_CR1中RE=1),电路将查看 启动信号的RX输入。一种检测起始位的方法 搜索中断字符或数据时也是如此。开始一段时间后 检测到后,电路对下一位

LPUART1在STM32L476上不工作(基于VisualGDB)

您好,我在Discovery L476板STM32L476VGT6的基础上开发了一块板,使用MBED并将其移植到VisualGDB后,一切都很好。唯一不起作用的是LPUART1。我将其连接到PB10LPUART1_RX、PB11LPUART1_TX,但每当我在代码中声明端口并下载它时,程序就会挂起,甚至无法启动: Serial RS232(PB_11, PB_10); 如果我删除这一行,代码工作得很好,但我不能使用这个端口 我更改了peripherapins.c中的管脚定义,因此PB10和PB

STM32F446';s CAN传输完成中断未触发:(

我正在使用STM32F446RE板上的CAN模块,该板上有标题中提到的MCU。我正试图通过Tera Term终端在UART上传输一些数据,并将这些数据通过环回模式发送并读取。对于初学者,我从CubeMx生成了配置,并编写了一些代码来传输数值用户进入can“网络”时,我希望进入can完成的传输ISR,并从那里在UART上打印一些消息,以指示传输已完成 在CubeMx中,我配置了如下CAN中断: CAN1发送中断已启用 CAN1 RX中断已启用(因为我还希望在修复此问题后触发接收中断) 这是代码的一

Stm32 HAL/裸机/RTOS/其他操作系统之外的最佳开发平台

我刚刚开始在STM32 STM32F407VET6板上工作,并使用HAL驱动程序成功地实现了一些基本的LED模式 我希望听到关于我应该开始开发我的应用程序/项目的软件环境的建议/建议,这将有利于长期技能开发 我进行了一些研究,发现了以下可用选项: STM32提供了HAL驱动程序 免费实时操作系统 姆贝德 LINUX 裸金属通道 任何其他操作系统/库/环境 如有任何建议,将不胜感激。我也愿意在多种环境下工作 编辑:我想知道如何对STM32进行编程。不仅仅是IDE的选择如果您在Windows上工作,

STM32F4上的SDL(用C写)

可以在STM32F4DISCOVERY上使用SDL库(C)吗? Procesor 168mhz和LCD 480x272 4'3英寸 我想知道,因为我想为STM做一个nes仿真器,你不用sdl。您可以直接写入显示器。Sdl适用于台式机

STM32F030和BOOT0引脚

我正在尝试用STM32F030K6T6微控制器创建电路,但有一件事我不确定 只有BOOT0引脚(没有BOOT1),可能我是盲人,但我在ST文档中找不到关于该引脚的描述(我在“DoclD024849 Rev 1”文档中查找,该文档是所述uC的数据表) 我发现的一件事是关于一对引导管脚的描述,如下所示(基于“DoclD018940 Rev 5”-RM0091参考手册文档): BOOT0=0 BOOT1=x-主闪存启动 BOOT0=1 BOOT1=0-系统内存引导(引导加载程序) BOOT0=1 BO

STM32F1 HAL CAN2未接收

我使用的是带有STM32F107VCT6控制器的定制板。该板的主要用途是连接两个can网络,进行一些计算,并通过SPI将一些数据中继到另一个控制器,将一些数据中继到另一个can网络,反之亦然 我有CAN1网络的接收和传输,完全符合我的要求;但是,CAN2网络只能传输(因此不是硬件故障) 复制代码后,如许多其他论坛所建议,将过滤器组更改为大于14的值;除了将其他要求设置为更改为CAN2外,它仍然不会在中断或轮询模式下接收 我使用STM32Cube MX生成了与CAN1相同的初始化代码,尽管在具有不

stm32定时器:在同一触发器上启动和重置

我有一个周期信号(22 kHz平方),连接到TIM3的IC1。我需要测量此信号的持续时间。 当前实现情况为: 1.TIM2编程为一个脉冲,arr=信号周期+小偏差,触发模式从机,CEN作为主输出,触发INT启用。 2.在TIM2 ISR中,只需执行TIM2->CNT=0 3.TIM3是选通模式下的从定时器,连接至tim2。触发器INT已启用。 4.在TIM3 ISR中,只需计算差异电流CNT和上一个CNT,即可测量信号持续时间。 这是可行的,但由于ISR调用和执行时间的原因,时间并非100%准确

STM32F302:只有一个DMA通道可从ADC传输2个寄存器

我使用的是STM32F302 uC系列 我需要使用ADC1对一些信号进行采样。我想把信号分成两组。 -第1组:电压、电流,… -第2组:射频信号(125 kHz) 我的想法是用注入触发器配置ADC。这样,“组1”将连续采样,“组2”将通过定时器触发器(f=125kHz)采样 这样,“Group1”数据将存储在ADC_DR寄存器中,而“Group2”数据将存储在ADC_JDR寄存器中 我的问题是,我想使用DMA传输采样数据,但我只有1个DMA通道可用。那么,是否可以将此DMA通道配置为将数据从AD

如何查找STM32F103RET的设备id

我被告知,每个STM32F103RET设备都带有一个唯一的设备id。如果是这样,检索id的过程是什么?我正在运行一个系统,其中我与多个STM Borad进行通信。要区分每个STM板,我可以使用此唯一Id。 谢谢您可以在中找到此信息。更具体地说,您需要阅读章节30.2唯一设备ID寄存器(96位) 因此,您的设备ID包含在只读寄存器中,称为U\U ID。此寄存器地址为0x1fff7e8。它的长度为96位,因此可以使用3个读取操作读取(例如),每个操作的长度为32位。当然你不能把它放在一个变量里。所以

STM32&x2B;特别组织+;SDIO&x2B;立方厘米

我试图通过FatFS+SDIO接口以1bit模式将SD卡连接到Stm32l4。 代码由CubeMX 5.0自动生成。在多维数据集中启用并配置DMA。 当我调用FatFS func,比如f_mount()或f_open(),我会得到FR_DISK_ERR return语句。低级别读取通过DMA_超时返回。请帮帮我。因此,首先,您可能应该看看ST的文档,了解如何使用SD卡准确地移动流程树。我知道使用USB,您必须调用主机进程并等待主机状态处于活动状态,然后才能进行任何FATFS调用。确保你正在埋伏,

STM32CubeMx:如何添加您自己的";“用户代码开始/结束”;部门?

我有一个项目,我需要在其中一个生成的C文件中添加几行。但是,我要添加更改的地方没有“用户代码开始/结束”部分。因此,每当我重新生成代码时,更改都会被覆盖。我尝试添加我自己的用户代码部分,如下所示,但即使这样也被覆盖了。看起来,CubeMX正在寻找一组预定义的用户代码块,并覆盖其他所有内容 /* USER CODE BEGIN 8 */ /* USER CODE END 8 */ 我希望能够定义自己的用户代码块,以便在CubeMX尚未提供用户代码块的地方编写自定义代码。CubeMX不支持添加自

STM32核子F103RB:LD1使用外部电源缓慢闪烁

我尝试使用带有外部电源(5V)的NucleoF103 RB(stm32),但它似乎无法工作,因为led LD1在红色和关闭之间缓慢闪烁。根据手册,它的意思是“在USB初始化之前通电”。恐怕我不知道这是什么意思。 在将Nucleo连接到外部电源之前,我通过USB将Nucleo连接到PC,使用Keil uVision 4闪存了相应的软件。在那里,我调试了程序,它在核子上正确运行。LD1保持红色,不闪烁。 我用我的程序和其他程序测试了其他NucleoF103RB样本,我遇到了同样的问题:在调试模式下使

Stm32 无法闪烁核仁板上的PA5指示灯

你能帮我找出我在哪里犯的错误吗?指示灯位于PA5端口上 int main(void){ HAL_Init(); SystemClock_Config(); GPIO_InitTypeDef GPIO_InitStruct; __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; G

在STM32上使用FATF读取单行

在STM32上使用FatFS库读取单行是否有一种干净的方法 我需要一个函数,用SD卡上txt文件中的特定行/行填充缓冲区 目前,我用f_read读取文件,但我不知道一行有多长: f_read(&file.file_p, buffer, len, &bw); 谢谢这里有f_get函数,可以让您逐行读取文件,但请记住,在这种情况下,您还需要有足够大的缓冲区来存储尽可能大的行 链接到文档:有一个f_get函数,可以让您逐行读取文件,但请记住,在这种情况下,您还需要有足够大的缓冲区来存

Stm32 有没有一种方法可以在不使用DMA的情况下在核子电路板上使用双模?

对于我们的项目,我们使用STM32446RE。 我们希望ADC1和ADC2同时开始采样。我们找到了双模式,但找不到如何使用它的清晰示例。 使用STM32CubeIDE,我们将两个ADC配置为双模 在HAL文档的某个地方,我们可能需要调用一个函数: HAL\u ADCEx\u MultiModeStart\u DMA 此功能的说明如下: 在上次传输后启用ADC DMA请求(多ADC模式),并启用ADC外围设备 但是由于我们不想配置DMA(因为我们认为目前它太复杂了),我们想知道在没有DMA的情况下

STM32中带FreeRTOS的STOP2模式

我正在使用STM32L476(使用FreeRTOS)开发一个低功耗应用程序。我使用的是SW4STM32和STM32CubeMx。我已经介绍了使用睡眠模式的无滴答空闲模式示例。我需要更多的节能,所以我计划使用STOP2模式。是否可以将STOP2模式与FreeRTOS一起使用 如果启用了无滴答功能,则可以使用低功耗计时器 停止0、停止1和停止2模式:SRAM1、SRAM2和所有寄存器 内容被保留。VCOREdomain中的所有时钟均已停止 PLL、MSI、HSI16和HSE被禁用。LSI和LSE 可

如何在STM32上管理连续UART传输和接收?

我一直在努力通过STM32中的UART进行串行通信。我使用的是TrueStudio,我想与PC通信,它每30毫秒发送7个字节,每10毫秒读取7个字节 我尝试在中断模式下以STM32接收字节。每次RX不是空的,代码都应该转到USART\U处理程序,然后我使用HAL\U UART\U Receive获得七个字节。我知道它看起来不好,但它起作用了 然后,为了将字节传输到PC机,我使用了每10毫秒轮询一次(在定时器中断内称为HAL_UART_传输),并且它也起作用。问题是,当我试图同时进行传输和接收时,

从STM32F401 MCU向ESP8266发送数据,并从ESP8266向MCU获取响应

我正在研制STM32f401核子板和ESP8266无线模块。我正在使用EclipseGCCARM工具链和cubeMx生成代码。我可以通过USART/UART DMA完美地传输和接收数据 现在我被ESP8266困住了。我无法将数据从MCU发送到ESP,也无法从ESP接收到MCU的响应。我已经测试了ESP模块通信,我可以通过USB通过AT命令连接到wifi,也可以通过插座连接在web上接收数据 我用PA9/PA10配置了USART1\U TX/USART1\U RX 提前谢谢。我不是专家,但我会尽力

stm32F4 pwm输入捕获约2MHz的高频信号?

我想测量PWM信号的频率。为此,我使用了STM-F401RE及其定时器输入捕获功能 问题是: 输入信号具有相当高的频率(约2MHz),并且 STM-F401RE控制器只有80MHz时钟 因此,当使用中断例程计算输入信号上升沿的数量时,它会遗漏许多上升沿(取决于输入信号的频率)。当使用示波器并切换I/O引脚时,我发现当频率低于400kHz时,它只能捕获所有上升沿 问题是:如何克服这个问题?或者是否有其他方法测量高频输入pwm信号 谢谢您需要将计时器设置为PWM输入,而不是捕获输入(例如,TIM

Stm32 SPI味噌值255

我正在尝试将我的程序移动到hal,我的SPI只接收255个。我忘记设置什么了 阅读功能: uint8_t addressMsb[1] = { READ_ADDRESS | RTD_MSB_ADDRESS }; uint8_t addressLsb[1] = { READ_ADDRESS | RTD_LSB_ADDRESS }; uint8_t Temp_Msb[1]; uint8_t Temp_Lsb[1]; ... PT_CS1_LOW; HAL_SPI_Transmit(&hspi

Stm32 待机模式电流消耗未降低至预期值

我试图测量STM32L011F4微控制器中的电流消耗。我尝试了STM在“stm32cubel0”中提供的待机模式示例代码。当我用万用表测量待机模式下的电流消耗时,它约为320µA。数据表显示,在独立看门狗和LSI关闭的情况下,温度在-40°C至25°C之间时,最大电流消耗为0.6µA。代码如下所示。有人知道为什么目前的消费比预期的要多吗 int main(无效) { /*STM32L0xx HAL库初始化*/ HAL_Init(); /*将系统时钟配置为2 MHz*/ SystemClock_C

如何使用stm32 HAL库通过UART发送AT命令 我试图用STAR32 HAL库,通过使用STM32 CuBeIDE和我的语言使用C++来连接到我的蓝牙和WiFi模块,因为GUI库(TouChgfx),在Windows上编译。

为了提供正确的上下文,我使用了CubeMX来设置一切,我的所有管脚都已初始化,在将这些HAL函数放入程序之前,编译并运行时不会出错。只有当我加上 HAL_UART(&huartWifi, "AT+CWJAP=SSID,secretPassword", sizeof("AT+CWJAP=SSID,secretPassword"), HAL_MAX_DELAY); HAL_UART(&huartBluetooth, "AT+NAMEfriendlyName", sizeof("AT

STM32F4 DISC1 CAN和USB外设一起不工作

您好,我对stm32f4 disc1有问题。 我可以使用CDC传输通过USB(USB_FS_CDC)传输信息,我可以发送can信息,但不会因为接收can信息而中断。仅当我未初始化USB\U CDC时,才会收到can消息的中断。 您好,由于我需要从can接收信息,然后通过USB传输到PC,所以可以同时使用can和USB CDC吗?有人能给我一些建议吗?有人吗?有什么建议吗

Stm32 错误:寄存器';sp&x27;不适用于此目标上的全局寄存器变量

我正在玩一个STM32µC项目。我在Mac OSX系统上使用workbench和CubeMX。我的项目本身很好,一切都会相应地编译,并在设备上按预期运行 为了进一步学习,我想使用该框架实现单元测试。我已经设置好了一切,得到了我的测试目录和一个makefile来配置MakefileWorker变量 但是,在执行Makefile时,我不断得到错误: error: register 'sp' unsuitable for global register variables on this tar

STM32在复位时进入停止模式

我正在STM32F103x中尝试停止模式,顺便说一下,这是一个克隆。我有一个计时器,它最多可以计数5秒,然后在中断时设置变量“goTosleep”=1。根据goTosleep的值,我执行Stop命令。我可以通过EXTI退出停止模式。问题是微控制器复位后似乎进入停止模式。当我在EXTI上中断时,它会很好地退出停止模式 这是我的密码 #include "main.h" TIM_HandleTypeDef htim2; uint8_t goTosleep = 0; void

上一页   1   2   3    4   5   6  ... 下一页 最后一页 共 17 页