问答

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

21ic问答首页 - TAG
  • stm32f407VG 串口IDLE与其DMATC中断问题

    stm32f407VG 串口IDLE与其DMATC中断问题 void test_USART1(void) { if(USART1_RX_PRJ_DATA[0] == 0xAA) { //关闭串口空闲中断 //LL_USART_DisableIT_IDLE(USART1); for(uint32_t i=0;i<16;i++) { LL_DMA_DisableStream(DMA2,LL_DMA_STREAM_5); LL_DMA_ClearFlag_TC5(DMA2); LL_DMA_SetDataLength(DMA2,LL_DMA_STREAM_5,1024); LL_DMA_EnableStream(DMA2,LL_DMA_STREAM_5); printf("请输入程序\r\n"); while(test_data != 1); //等待程序读取完成 test_data = 0; printf("已经得到1024字节数据\r\n"); } } USART1_receive_ok_flag = 0; } 其中USART1_receive_ok_flag由IDLE中断置位,test_data 由DMATC中断置位 该程序在上位机发送0xAA后进入空闲中断然后置USART1_receive_ok_flag 进入test_USART1程序,该程序在收到1024字节后触发DMATC中断,置test_data 循环后退出,运行没有任何问题 问题:将LL_USART_DisableIT_IDLE取消注释后程序收到0xAA触发空闲中断,置USART1_receive_ok_flag 进入test_USART1中后程序不会等待输入1024字节,会直接继续执行;循环16都不会等待test_data ,,相当于: LL_DMA_DisableStream(DMA2,LL_DMA_STREAM_5); LL_DMA_ClearFlag_TC5(DMA2); LL_DMA_SetDataLength(DMA2,LL_DMA_STREAM_5,1024); LL_DMA_EnableStream(DMA2,LL_DMA_STREAM_5); 执行完成后test_data 直接就是1了,为什么?查看好像是LL_DMA_DisableStream执行完成后就置1了,,期间只有空闲中断与DMATC中断生效没有其他任何中断打断 空闲中断与DMATC中断有什么关系?为什么不能关闭空闲中断?

    DMA 串口 stm32f407 tc

    832浏览量 8回复量 关注量
  • 谁有STM32F407开发板基于新的hal库V1.8.1的UDP组播例子

    谁有STM32F407开发板基于新的hal库V1.8.1的UDP组播例子,有个正点原子的例子,但是hal库比较老是[backcolor=rgb(232, 232, 232)][font=Tahoma, "][size=15px]基于V1.7.11的[/size][/font][/backcolor]

    正点原子 组播 开发板 udp stm32f407 ST

    3733浏览量 3回复量 关注量
  • STM32F407 同一个定时器的两个通道产生的PWM脉冲不对

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

    定时器 stm32f407 PWM STM32 MCU

    4459浏览量 16回复量 关注量
  • STMf407 片外sram的IO口初始化问题 sos

    GPIO_Initure.Pin=GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_8|\GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|\GPIO_PIN_14|GPIO_PIN_15; GPIO_Initure.Mode=GPIO_MODE_AF_PP; //推挽复用 GPIO_Initure.Pull=GPIO_PULLUP; //上拉 GPIO_Initure.Speed=GPIO_SPEED_HIGH; //高速 GPIO_Initure.Alternate=GPIO_AF12_FSMC; //复用为FSMC HAL_GPIO_Init(GPIOD,&GPIO_Initure); //PE0,1,7~15 GPIO_Initure.Pin=GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|\ GPIO_PIN_10| GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|\ GPIO_PIN_15; HAL_GPIO_Init(GPIOE,&GPIO_Initure); //PF0~5,12~15 GPIO_Initure.Pin=GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|\ GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15; HAL_GPIO_Init(GPIOF,&GPIO_Initure); 请问[backcolor=rgb(232, 232, 232)][font=Tahoma, "][size=15px]这里为什么只复用了12个IO口,下面的其他IO口不应该都设为复用fmsc吗?[/size][/font][/backcolor]

    stm32f407 FMSC

    866浏览量 0回复量 关注量
  • AT32F407AVG官方是不生产吗? sos

    AT32F407AVG是没有货吗 最近需要出货,之前用的STM32F407VE,现在成本好高,也买不到,想着AT32F407AVG可以替代,可以问了一圈说没货,奇怪......

    MUC ST stm32f40 stm32f407 STM32F4 STM32F

    2448浏览量 0回复量 关注量
  • sd卡状态寄存器超时 sos

    用stm32f407对sd卡进行初始化,在上电发送CMD8时,返回错误:命令响应超时。SDIO->STA的值为0x00000004,有没有大佬可以办忙解决一下啊[img]https://bbs.21ic.com/static/image/smiley/comcom/7.gif[/img]

    SD卡 状态寄存器 ST stm32f40 stm32f407 STM32F4

    2292浏览量 0回复量 关注量
  • AT32F407VE引脚和STM32F407VE引脚不兼容!

    AT32F407VE引脚和STM32F407VE引脚不兼容!19脚AT是地,ST是正!上电就冒烟

    上电就冒烟 引脚 stm32f407

    1206浏览量 2回复量 关注量