问答

汇集网友智慧,解决技术难题

将爱藏于深海

TA的家园币:1206  

  • STM32F407 同一个定时器的两个通道产生的PWM脉冲不对

    STM32F407VE,使用定时器1同时产生两路PWM波两路PWM产生的脉冲数不一样时,实际产生的脉冲不对,会少1个实际上是不能使用这种方式做吗?

    定时器 stm32f407 PWM STM32 MCU

    2024-04-23 14
  • STM32的DMA中传输数据宽度与实际宽度不符会怎样?

    如果uint16_tA[]={0,1,2,3},B[]={0,0,0,0};要将A数组的数据用DMA传递到B数组中,但是在设置数据宽度的时候设置的是一位DMA_Initstructure.DMA_MemoryDataSize=DMA_MemoryDataSize_Byte。将结果显示在OLED屏幕上,结果只有前两个数正确的传到了B数组中,B数组在OLDE上显示的是0,1,0,0。出现这种问题的根本原因是什么。

    ST 嵌入式

    2023-08-21 21
  • STM32移植LWIP问题

    代码功能是创建客户端,静态ip,在407跑通了,但是直接复制移植到429的板子就运行报错,使用ucosii,请问可能是啥原因,lwip初始化成功,tcp客户端也初始化成功,之后就运行调试串口打印出这个Assertion"arp_table.q==NULL"failedatline369in..\LWIP\lwip-1.4.1\src\netif\etharp.c那几行代码是/*1)emptyentryavailable?*/if(empty<ARP_TABLE_SIZE){i=empty;LWIP_DEBUGF(ETHARP_DEBUG|LWIP_DBG_TRACE,("etharp_find_entry:selectingemptyentry%"U16_F"\n",(u16_t)i));}else{/*2)foundrecyclablestableentry?*/if(old_stable<ARP_TABLE_SIZE){/*recycleoldeststable*/i=old_stable;LWIP_DEBUGF(ETHARP_DEBUG|LWIP_DBG_TRACE,("etharp_find_entry:selectingoldeststableentry%"U16_F"\n",(u16_t)i));/*noqueuedpacketsshouldexistonstableentries*/LWIP_ASSERT("arp_table.q==NULL",arp_table.q==NULL);//这里就是369行/*3)foundrecyclablependingentrywithoutqueuedpackets?*/}

    ST 单片机 lwIP

    2023-07-30 21
  • 关于中断的问题,Disable中再Enable中断无法正常运行

    Disable中断之后再Enable无法正常运行,这是中断函数:voidHAL_GPIO_EXTI_Rising_Callback(uint16_tGPIO_Pin){if(GPIO_Pin==GPIO_PIN_3){HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);HAL_NVIC_DisableIRQ(EXTI2_3_IRQn);EXIT_Sign=1;}}这是while循环while(1){/USERCODEENDWHILE/if(EXIT_Sign==1){HAL_Delay(2000);MX_GPIO_Init();HAL_NVIC_EnableIRQ(EXTI2_3_IRQn);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);EXIT_Sign=0;}/USERCODEBEGIN3/}这样是可以实现功能的,但是只要注释掉if里面的MX_GPIO_Init();或者HAL_NVIC_EnableIRQ(EXTI2_3_IRQn);这两个注释掉一个就无法实现功能。我的问题是:MX_GPIO_Init();函数里面有使能中断语句了HAL_NVIC_EnableIRQ(EXTI2_3_IRQn);为啥在if里面还得再重复一遍这个使能函数呢。不知道我有没有说明白,请各位大佬们帮忙解答一下。

    GPIO IO gp pi AB BLE

    2023-02-22 34