我在带有keil ide和arm编译器版本6和g++17的stm32f407上使用freeRTOS,我不喜欢使用freeRTOS线程API。相反,我希望使用std::thread c++本机库。但是当我包含#include <thread>时,keil抛出这个错误:error: <thread> is not supported on this single threaded system。 有什么问题吗? 当我使用freeRTOS时,这意味着我的平台不是单线程的,那么为什么keil抛出这个错误呢?
我正在尝试使用模数转换器和直接存储器访问使用STM32F407。我想将ADCValue的内存地址设置为DMA stream x内存0地址寄存器。但是我得到了这个错误:
type name is not allowed
这部分是main格式的
unsigned short ADCValue[1];
DMA2_Stream0->M0AR= uint32_t(&ADCValue);
和寄存器的定义
__IO uint32_t M0AR; /*!< DMA stream x memory 0 address register */
我在Stm32F407 Discovery Board工作。但是我没有解决我的时钟配置问题。我想要168兆赫的工作频率,我得到了CubeMx时钟配置管理器的帮助。这是我来自CubeMx 0x4405408的PLLCFGR值(我对这个寄存器有问题)。然后我将所有RCC寄存器复制粘贴到我的CMSIS代码中。这是我的时钟配置代码。
RCC-> CFGR = 0x4008940A; //MCO2 Source is PLLI2S (4), HSE Divided by 8 for RTC (8), APB2 Divided by 2 for 84Mhz, A