stm32相关内容
我有一个函数f(q15_t *x, inst *z),它有一个输入x和一个实例z: typedef struct { q15_t * pbuff; }inst; inst z; 我想要一个能够分配内存空间并将其地址放到z.pbuff的初始化器函数,就像(My Effort): instance_initiator(inst *instance,uint16_t buffSize)
..
我使用ARM Cortex M4成功地为我的STM32F303交叉编译了GNU Science Library,如下所述: How to crosscompile GSL for Arm Cortex M4? 但是,这可以很好地工作,但现在我从GSL获得了每个内存分配的HardFault值。例如,下面这行: gsl_vector_float *x = gsl_vector_float
..
配置: 使用Ncore-L476RG。使用GNU arm Eclipse。我已经从STM32CubeMX生成了一个极简主义代码。我已在板载ST-Link中刷新了J-Link驱动程序。 我一直试图为我的代码运行调试器,但我的程序计数器没有设置为main()。相反,它无法读取某个内存地址。错误“在地址”0xXXXXXXXX“中断,没有可用的调试信息,或者在程序代码之外。”出现。 我已经包
..
假设我正在处理ARM Cortex M7。现在来看一下: int a[4][4]; a[i][j]=5; 在汇编语言中,函数将计算a[j][j]地址,还是使用可查找(相同大小的指针数组)或某种神奇的方法将5放置在正确的位置? 这是反汇编程序的输出: 136 array1[i][i+1]=i; 08000da6: ldr r3, [r7,
..
我是第一次使用Yocto,我想为我的STM32构建一个映像。最后,它说构建是成功的,但构建之后我没有理解尾注 NOTE: Fetching uninative binary shim http://downloads.yoctoproject.org/releases/uninative/2.9/x86_64-nativesdk-libc.tar.xz;sha256sum=d07916b95
..
我是STM32编程领域的新手,一直在努力寻找合适的IDE已经有一段时间了。我知道所有其他的IDE,比如Keil和IAR,但目前购买它们只是为了学习,对我来说成本太高了。 我已经开始将VS Code用于越来越多的开发工作,我认为它将是用于STM32开发的一个很好的IDE。在过去的几天里,我在网上找到了许多关于如何配置IDE以构建STM32项目的示例,但它们似乎都缺少我正确编译项目所需的重要信息
..
我为STM32F4构建引导加载程序,并使用在system_stm32f4xx.c文件中手动更改scb->VTOR的Vect_TAB_Offset值构建用户应用程序,但如果我在应用程序中这样做的话。它工作不正常。 我在main()的开头调用了SCB->VTOR=0x8040000,但它不起作用。BOOTLOADER USER APPLICATION 推荐答案 启动代码在main()
..
我正在尝试使用12位分辨率的ADC录制音频,获取样本缓冲区并通过CAN FD将其发送到另一个设备,该设备获取该音频的样本并创建.wav并播放它。问题是,我看到麦克风的数据通过CAN FD发送到另一台设备,但我无法将这些数据正确地转换为.wav文件,并通过麦克风听到我说的话。我只听到哔声。 我正在创建新的.wav每4个CAN FD消息,以便进行某种实时通信并减少延迟,但我认为这是不可能的,或者
..
我是zlib库和C++的新手。因此,我可以在STM32上压缩char并使用compress()或compress2()。 我在没有在STM32上编译的情况下尝试了样例代码,它起作用了!但是,当我编译到STM32时,它总是返回(-2)或Z_STREAM_ERROR。当我打印结果时,它只打印第一个byte。我在设备上还有大约6kb的空闲内存。代码有什么问题吗? 注意:在zconf.h上,我
..
更新: STM32L4电路板在DFU更新后有时无法运行的问题,请跳至编辑2获取简短故事和示例代码。 我正在进行一个使用基于STM32L4的定制电路板的项目。 在通过USB发送字符串之前,我一直在格式化字符串时遇到问题。 在通过USB使用DFU更新MCU时出现此问题,在调试模式(使用STLink)下一切正常。 当向sprintf传递3个以上的参数时,MCU退出DFU模式,但应用程序永
..
我正在处理一个项目,在该项目中,我需要从Tim中断中执行2段代码。其中一个的优先级略高于另一个,两者都将在两个不同的计时器上运行(当然不是在相同的时间间隔)。由于两个计时器成比例(一个为1 KHz,一个为8 GHz),两个将同时触发。 因为我已经将RTOS中间件用于其他目的(优先级也比这些低得多的线程),所以我想为每个例程创建一个线程。 然而,看看cubeMX是如何生成代码的,我甚至想
..
我希望简要解释一下我的汇编时序循环是如何在Nucleo-H723ZG板上指示它是在单个CPU时钟周期内执行的。所使用的两条指令,一条SUB和一条BNE,在循环分支时消耗三个时钟周期,因此有一些神奇之处!我正在使用GPIO BSRR切换LED,需要使用275M的计时循环计数才能实现大约每秒一次的闪烁。 推荐答案 对于皮质M0、M3和M4,循环计数包含在技术参考手册(eg Cortex M
..
我正在使用Atolic Truestudio IDE(基本上是Eclipse)在各种STM32L4 Nucleo主板上开发固件。在此之前,我一直通过UART使用printf,这要归功于虚拟COM端口。 我想使用STM32 ITM迁移到printf。 更准确地说,我研究的是Nucleo-L4A6ZG。调试是通过GDB服务器进行的。 在Atolic上,我修改了我的Debug配置,以启
..
在经历了一个相当困难的学习中断优先级的过程之后,我仍然试图理解允许我在SysTick_IRQn(ISR每1ms调用一次FreeRTOS调度程序)上调用HAL_NVIC_SetPriority()的值。 TLDR; 一部分我认为允许HAL_NVIC_SetPriority(SysTick_IRQn, 15 ,0U)(可能的最低优先级)和HAL_NVIC_SetPriority(SysTi
..
我正在编程STM32L051R8,有下一个问题。我大部分时间都在尝试使用待机模式,有时会被RTC唤醒,这是一个自动唤醒。如果我在没有睡眠的情况下工作-一切都运行得很好,我每次都会收到RTC中断,但当我使用待机时-不要。 如果我使用待机,我的第一个周期会很好: 重置 设置RTC 进入待机状态 正在等待中断 唤醒 但第二个和下一个周期在进入待机状态后立即唤醒(3)。 推
..
几年来,我一直使用med在线编译器创建.bin文件,然后像这样使用ST-LINK/V2 USB加密狗在命令行中刷新它们,一切都运行得无懈可击: st-flash write 01_blink.NUCLEO_F103RB.bin 0x8000000 今天我下载了STM32CubeIDE for Linux(Fedora 30),并开始使用枫叶迷你(STM32F103CBT6)浏览本教程。
..
我正在使用STM32F407VGT6和CubeMX。 所以我从通用计时器开始使用,但我遇到了预定标和周期值的问题。 基本上,我希望每隔n(其中n=1,2,3.)生成一个计时器中断并执行一些任务。 计算周期和定标前的值的公式有很多变化 公式的某些版本包括: TIMupdate Freq(HZ)=Clock/((PSC-1)*(Period-1)) 更新事件=Tim CLK/((P
..
我主要知道两种方法(有许多变体,使用双字段,每个外围设备的数据结构,等等)使用GCC声明内存映射寄存器: 使用以右地址开头的指针,如volatile uint32_t *pMyRegister = (uint32_t *)0xDEADBEEFUL; 或定义一个变量并手动映射它,如volatile uint32_t MyRegister __attribute((section(".regi
..
我使用STM32L151与使用USB CDC的PC通信。我使用STM32 HAL库创建我的项目。 我发现USB每隔1ms发送数据,每次发送64字节。那么,USB CDC的最高速度是64kbyte/s吗?这远远低于12 Mbit/s的USB全速数据速率。如何才能达到此速度,或至少达到此速度的一小部分? 推荐答案 否。如果您的代码“足够快”,则CDC的最大速度约为1MByte/sec。这可
..
..