| 
 
| 本帖最后由 181wh 于 2016-4-23 09:54 编辑 
 感谢ST官方和21IC举办这次活动,并有幸得到到GD32 Colibri-F207ZE板,进行了测试,测试还在继续进行,报告还会继续更新。
 
 1.测试目的:
 1.1测试Modbus在GD32F207ZE板上的应用;
 1.2 测试GD32F207ZE在开发环境KEIL的适应性。
 2.测试环境:
 2.1硬件:
 2.1.1  GD32 Colibri-F207ZE板;
 2.1.2  小口USB线(下载兼供电);
 2.1.3  笔记本电脑;
 2.2软件:
 2.2.1 Win7(64位)操作系统;
 2.2.2  MDK5.16A;
 2.2.3KEPServrExV4.0;
 2.2.4 基于Modbus的应用测试软件;
 3.测试情况:
 3.1 串口—Uart1;
 3.2  输出口—PE0、PE1、PE2、PE3(开关量输出);
 3.3 输入口—PD14、PD15(KEY1、KEY2蓝按键);
 3.4  AD接口—外部模拟量输入PC0(CH10)、PC2(CH12)、PC3(CH13)、PF6(CH4)、PF7(CH5)、PF8(CH6)、;
 3.5 PWM输出—PA5;
 3.6 TIM2(1ms定时中断);
 
 
 
 测试用程序:
 1.主程序
 int main(void)
 {
 /* 配置评估板*/
 EvbSetupBoard();
 SysTickConfig();
 GPIO_Config();
 Adc_Init();
 Dac2_Init();
 
 
 EvbLedControl(LED3,LED_ON);  //receEnable
 localAddr = 0x01;  //设置地址为01
 while(1)
 {
 timeProc();
 checkComm0Modbus();
 
 
 if((Register_coil[0] & 0x0001) == 1)    //PE.0
 GPIO_SetBits(GPIOE,GPIO_PIN_0);
 else GPIO_ResetBits(GPIOE,GPIO_PIN_0);
 
 if((Register_coil[0] & 0x0002) == 2)    //PE.1
 GPIO_SetBits(GPIOE,GPIO_PIN_1);
 else GPIO_ResetBits(GPIOE,GPIO_PIN_1);
 
 if((Register_coil[0] & 0x0004) == 4)    //PE.2
 GPIO_SetBits(GPIOE,GPIO_PIN_2);
 else GPIO_ResetBits(GPIOE,GPIO_PIN_2);
 
 
 if((Register_coil[0] & 0x0008) == 8)    //PE.3
 GPIO_SetBits(GPIOE,GPIO_PIN_3);
 else GPIO_ResetBits(GPIOE,GPIO_PIN_3);
 
 
 if(GPIO_ReadInputBit(GPIOD, GPIO_PIN_14) == 1)  //PD.14
 H_SET_BIT(Register_coil[1],00);
 else
 H_CLR_BIT(Register_coil[1],00);
 
 if(GPIO_ReadInputBit(GPIOD, GPIO_PIN_15) == 1)  //PD.15
 H_SET_BIT(Register_coil[1],01);
 else
 H_CLR_BIT(Register_coil[1],01);
 
 Dac2_Set_Vol(Register_ram[8]);
 
 Register_ram[10] = Get_Adc(10);
 Register_ram[11] = Get_Adc(12);
 Register_ram[12] = Get_Adc(13);
 Register_ram[13] = Get_Adc3(4);
 Register_ram[14] = Get_Adc3(5);
 Register_ram[15] = Get_Adc3(6);
 }
 }
 
 
 2.ADC设置程序
 void  Adc_Init(void)
 {
 ADC_InitPara ADC_InitStructure;
 GPIO_InitPara GPIO_InitStructure;
 RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_GPIOC | RCC_APB2PERIPH_ADC1, ENABLE );
 RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_GPIOF | RCC_APB2PERIPH_ADC3, ENABLE );
 RCC_ADCCLKConfig(RCC_ADCCLK_APB2_DIV6);
 
 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_0 | GPIO_PIN_2 | GPIO_PIN_3;
 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8;
 GPIO_InitStructure.GPIO_Mode = GPIO_MODE_AIN;
 GPIO_Init(GPIOC, &GPIO_InitStructure);
 GPIO_Init(GPIOF, &GPIO_InitStructure);
 
 ADC_InitStructure.ADC_Mode = ADC_MODE_INDEPENDENT;
 ADC_InitStructure.ADC_Mode_Scan = DISABLE;
 ADC_InitStructure.ADC_Mode_Continuous = DISABLE;
 ADC_InitStructure.ADC_Trig_External = ADC_EXTERNAL_TRIGGER_MODE_NONE;
 ADC_InitStructure.ADC_Data_Align = ADC_DATAALIGN_RIGHT;
 ADC_InitStructure.ADC_Channel_Number = 2;
 ADC_Init(ADC1, &ADC_InitStructure);
 ADC_Init(ADC3, &ADC_InitStructure);
 
 ADC_Enable(ADC1,ENABLE);
 ADC_Calibration(ADC1);
 
 ADC_Enable(ADC3,ENABLE);
 ADC_Calibration(ADC3);
 
 3.DAC设置程序
 
 void Dac2_Init(void)
 {
 GPIO_InitPara  GPIO_InitStructure;
 DAC_InitPara DAC_InitType;
 
 RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_GPIOA, ENABLE);
 RCC_APB1PeriphClock_Enable(RCC_APB1PERIPH_DAC, ENABLE);
 
 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_5;
 GPIO_InitStructure.GPIO_Mode = GPIO_MODE_AIN;
 GPIO_Init(GPIOA, &GPIO_InitStructure);
 DAC_InitStructure.DAC_Trigger=DAC_TRIGGER_NONE;
 DAC_InitType.DAC_WaveType=DAC_WAVEGENE_NONE;
 DAC_InitType. DAC_LFSRNoise_AmplitudeTriangle=DAC_LFSR_BIT0;
 DAC_InitType.DAC_OutputBuffer=DAC_OUTPUTBUFFER_DISABLE;
 DAC_Init(DAC_CHANNEL_2,&DAC_InitType);
 DAC_DMA_Enable(DAC_CHANNEL_2, ENABLE);
 DAC_SetChannel2Data(DAC_ALIGN_12B_R, 0);
 DAC_Enable(DAC_CHANNEL_2,ENABLE);
 }
 
 
 4.GPIO设置程序
 void GPIO_Config(void)
 {
 GPIO_InitPara GPIO_InitStructure;
 RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_GPIOE,ENABLE);
 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3;
 GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUT_PP;
 GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;
 GPIO_Init(GPIOE,&GPIO_InitStructure);
 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3;
 GPIO_Init(GPIOE,&GPIO_InitStructure);
 
 RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_GPIOD,ENABLE);
 
 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_14 | GPIO_PIN_15 ;
 GPIO_InitStructure.GPIO_Mode = GPIO_MODE_IN_FLOATING;
 GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;
 GPIO_Init(GPIOE,&GPIO_InitStructure);
 GPIO_InitStructure.GPIO_Pin = GPIO_PIN_14 | GPIO_PIN_15;
 GPIO_Init(GPIOE,&GPIO_InitStructure);
 }
 
 
 
 | 
 |