7月29号跟着江协科技的课 学完了1-3 基础代码的的编写 并且学习使用了 SerialPlot软件 第一次看见可视化的信号波形感觉挺牛逼的旋转编码器的配置思路可以看到RP1-4的输出引脚接到了最小系统板上的A2-5引脚斜体样式再查找对应的引脚复用图表可发现PA2-5 对应的是ADC1或者ADC2的IN2-5的引脚所以应该配置voidRP_Init(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC2,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_ADCCLKConfig(RCC_PCLK2_Div6);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_ModeGPIO_Mode_AIN;// 模式选择输入GPIO_InitStructure.GPIO_PinGPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;//选择2345引脚GPIO_InitStructure.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(GPIOA,GPIO_InitStructure);ADC_InitTypeDef ADC_InitStructure;ADC_InitStructure.ADC_ModeADC_Mode_Independent;ADC_InitStructure.ADC_DataAlignADC_DataAlign_Right;ADC_InitStructure.ADC_ExternalTrigConvADC_ExternalTrigConv_None;ADC_InitStructure.ADC_ContinuousConvModeDISABLE;ADC_InitStructure.ADC_ScanConvModeDISABLE;ADC_InitStructure.ADC_NbrOfChannel1;ADC_Init(ADC2,ADC_InitStructure);ADC_Cmd(ADC2,ENABLE);ADC_ResetCalibration(ADC2);while(ADC_GetResetCalibrationStatus(ADC2)SET);ADC_StartCalibration(ADC2);while(ADC_GetCalibrationStatus(ADC2)SET);}uint16_tRP_GetValue(uint8_tn)//这里n 通道数{if(n1){ADC_RegularChannelConfig(ADC2,ADC_Channel_2,1,ADC_SampleTime_55Cycles5);}elseif(n2){ADC_RegularChannelConfig(ADC2,ADC_Channel_3,1,ADC_SampleTime_55Cycles5);}elseif(n3){ADC_RegularChannelConfig(ADC2,ADC_Channel_4,1,ADC_SampleTime_55Cycles5);}elseif(n4){ADC_RegularChannelConfig(ADC2,ADC_Channel_5,1,ADC_SampleTime_55Cycles5);}ADC_SoftwareStartConvCmd(ADC2,ENABLE);while(ADC_GetFlagStatus(ADC2,ADC_FLAG_EOC)RESET);returnADC_GetConversionValue(ADC2);}其他模块也是这个流程先看原理图 看元件对应在小系统板子上的引脚 然后去对应引脚复用图里找对应引脚即可配置《补充一张串口捕获的旋转编码器波形图》