• 如何等待设置?

    我当前的实现如下所示: void send_data(...) { ... while(TXE_bit != 1); /* Wait until TXE_bit becomes 1 */ ... } 如图所示,我正在使用while循环等到位值更改为1。但是,我的理解是我正在使用阻塞方法。如果该位从未设置,则我的代码将陷入此while循环中。那么,做这样的事情的正确方法是什么? 先感谢您。
  • while(1)的main()循环停止通过STM32F072CBT6的ADC DMA访问执行

    我正在使用DMA从我的ADC访问数据。 ADC的值永久更改。 我读到可以使用DMA,因此可以随时随地使用ADC的值。 问题在于我的Main while()循环没有执行或仅执行了一次。 DMA Interupt调用。 HAL_ADC_Start_DMA(&hadc, (uint32_t*) &buffer, 1); 这是启动ADC的DMA的代码。模式是循环的。 这是初始化: void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStr...
  • 为什么需要内存别名?

    我对ST Microelectronics的这种体系结构设计感到困惑。 以STM32F407VG为例。程序在地址0x08000000的Flash中加载。该地址映射到地址0x00000000,因为复位后处理器首先看向0x00000000。 为什么不只将Flash的第一个地址设为0x00000000。内存别名的优点是什么?
  • C函数声明中的语句混乱

    我正在通过STM32 MCU上USB驱动程序的代码实现。我对C语言的理解有点受限制,我遇到了这个函数定义,我不清楚。 static enum usbd_request_return_codes cdcacm_control_request( usbd_device *usbd_dev __attribute__((unused)), struct usb_setup_data *req, uint8_t **buf __attribute__((unused)), uint16_t *len, void (...
  • 重新解释C定义的结构错误的类型转换

    给我提供了STM32的C ++代码,其中添加了一些功能。该代码的初始版本是用OpenSTM32编写的,因此我导入了该项目并尝试构建它。不幸的是,在构建时会出现一些错误,而且由于我不是C ++专家,因此很难弄清楚它们。 “ reinterpret_cast (某些数字)”不是常量表达式”,资源:stm32f746xx.h。 (GPIOB ... I) 没有对象就无法调用成员函数'uint16_t .....()' 我已经对错误1进行了一些研究,但是我不是100%肯定是这种情况。我发现的错误信息是由较新版...
  • STM32 USB CDC长数据包接收

    我需要将数据从PC发送到STM32F3,所以我决定在uC中使用内置USB。 但是现在我有一个问题-我想一次向stm32发送大量数据-我的意思是类似200-500 Bytes。 当我从PC发送带有少于64个图表的minicom数据包时-一切都很好-回调CDC_Receive_FS(uint8_t * Buf,uint32_t * Len)发生一次-它启用了UsbRxFlag,只是通知正在运行的程序有可用数据。 static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_...
  • 在STM32上使用DMA复制16位数据

    How do I use DMA to copy ADC data into a 16-bit buffer? The STM32F373 has a 16-bit ADC that can be read using the HAL function: HAL_StatusTypeDef HAL_SDADC_InjectedStart_DMA(SDADC_HandleTypeDef *hsdadc, uint32_t *pData, uint32_t Length) This DMA initialize...
  • 似乎无法在Eclipse中运行C ++程序

    Can't seem to run a C++ program in Eclipse. It does compile fine but when I run the program, I don't see anything happening, except I see a window that says Looking for Executables for a second and then vanishes. 值得注意的是,我选择了MCU ARM GCC作为工具链,并且将STM32 MCU连接到...
  • STM32L4R5的SystemClock配置出现问题

    我最初在CubeMX上生成的项目正在32MHz上工作。由于我试图实现80MHz的ADC,因此决定将系统时钟提高到100MHz。我在源代码中所做的更改位于main.c中: void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};...
  • 需要数字标识符前的期望标识符或'('的解决方案吗?

    我正在通过使用stm32多维数据集IDE开发用于Stm32f407rct6微控制器的固件。我的固件即将完成,但是我遇到了一个小错误,例如预期的标识符或下一行中的数字常量之前的'('),请给我解决方案 #define NUM_RX_BYT 8 #define CFGR 0 // this Line is where iam getting the error #define CELL 1 #define AUX 2 #define STAT 3 #define CFGRB 4 #define CS_PIN 1...
  • 如何解决注册参考指向错误的参考?

    I'm trying to use the ADC in STM32 and I want to modify the ISR register so I'm doing ADC->ISR |= <bit>. However when I control-click on ISR it's bringing me to in stm32f0xx/cmsis_boot/core_cm0.h /** \brief Union type to access the Interrupt Program Statu...
  • 为什么使用__builtin_bswap32()会导致我的数据损坏?

    I'm using __builtin_bswap32() to reverse my bits in C but sometimes when I do it, the output is messed up and I'm not sure why. 例如,如果下面的第一列是我想要反转(十进制)位的原始正确值,则第二列是反转位的输出(十进制)。其中一些是正确的,但是行为是不可预测的。我尝试添加延迟,但这没有帮助。 original in decimal __builtin_bswap32(origi...
  • 如何在另一个全局变量数组中使用已声明的全局变量而在STM32 Cube IDE中没有任何错误?

    我正在为自己开发的PCB开发固件。我使用的微控制器是STM32f401rct6。 我正在使用SWD界面和Stlink来刷新程序。 我的问题是我已经声明了一个常量全局变量(TOTAL_IC),但是当我尝试在另一个全局变量数组(cell_asic bms_ic [TOTAL_IC];)中再次使用该变量时,会抛出错误,但是如果我在any函数中使用它,不是,但我不想在某些特定函数中使用它,因为在整个程序中都使用了变量(TOTAL_IC)。因此,请给我一个解决方案,以消除此错误。我是个初学者,请帮助我学习。 请找到以...
  • 在UART中多次调用__HAL_UART_GET_FLAG

    当我尝试使用SerialPrint功能在串行接口上​​进行打印时。 void SerialPrint(const char *serial_data, ...) { char uartbuffer[1024]; va_list arg; va_start(arg, serial_data); uint16_t len = vsnprintf(uartbuffer, 1024, serial_data, arg); va_end(arg); HAL_UART_Transmit(&hu...
公告

《从零开始开发BBS》课程上线啦,快来跟着我一步步搭建属于你的BBS吧。

课程地址:https://www.shiyanlou.com/courses/1436
9折优惠邀请码: ZHwfIjb1

该课程会带领大家一步步的了解并熟悉Go语言开发,如果你是一个Go语言初学者,或者正准备学习Go语言,那么这个课程非常适合你。如果你熟练掌握了本课程中的知识点,相信你就已经入门Go语言开发,并能胜任日常的开发工作了。