
u16 Get_Adc(u8 ch) { ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_3Cycles ); ADC_SoftwareStartConv(ADC1); while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC )); return ADC_GetConversionValue(ADC1); } void EXTI0_IRQHandler(void) { adcx=Get_Adc(ADC_Channel_5); temp=(float)adcx*(3.3/4096); printf("\ntemp=%lf\r",temp); EXTI_ClearITPendingBit(EXTI_Line0); } ![]() 初始化函数略 外部中断上升沿触发,如图那个脉冲信号,待测信号与同步信号有几十纳秒的延迟。实际检测中发现,AD采集结果接近2V,而实际待测信号用示波器观察只有600Mv,但是改变待测信号大小变化趋势是相同的。同样,用此程序测量直流信号却是准确的。程序思路检查很多遍感觉没有问题,百思不得其解。各位大佬可以帮忙看看吗? |
stm32支持canfd和dma结合使用吗
NUCLEO-F401RE板卡,连接USB,在KEIL下可以找到ST-LINK仿真器,也可以下载代码。在电脑上看不到NODE_F401RE的磁盘,有知道是什么原因?
程序进入HardFault_Handler求解
STM32CUBEIDE
This example describes how to configure the FMC controller to access the SDRAM memory in low power mode
STM32407 使用串口闲时中断+DMA方式接收最大接收字节是多少
USB_CDC_HOST 标准库里边USBH_DeAllocate_AllChannel()函数的疑问?
STM32部署机器学习算法硬件至少要使用哪个系列的芯片?
重新配置SCB->VTOR = 0x08010000后,再次复位,程序异常,发现不进tick中断,IIC读数卡死在准备查询循环中。
uboot初始化IIC1,跳转到应用程序中后,先读一字节AT24C04的数据,然后初始化IIC1(未复位),再读一字节AT24C04时,有概率一直检测到IIC处于busy状态。
从示波器上看没有那么大的尖峰电压啊,就算是尖峰这个差距也太大了吧
并且,即使触发中断后加入很长时间的延时,采的值与示波器显示的波形都有很大差距
待测信号不是脉冲信号,脉冲信号仅用来触发外部中断
void EXTI0_IRQHandler(void)
{
delay_us(50);
adcx=Get_Adc(ADC_Channel_5);
temp=(float)adcx*(3.3/4096);
printf("\ntemp=%lf\r",temp);
EXTI_ClearITPendingBit(EXTI_Line0);
}
你确定是振铃效应?我在开启AD采样之前加入延时,AD采集的值与示波器看到的值依然差距很大