| 
 
| 今晚捣鼓了一下触摸按键 代码:
 #include "CH57x_common.h"
 #include "CH57x_gpio.h"
 
 UINT16 abcBuff[40];
 volatile UINT8  adclen;
 
 uint32_t ADCR;
 
 void DebugInit(void)
 {
 GPIOA_SetBits(GPIO_Pin_9);
 GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);
 GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA);
 UART1_DefInit();
 }
 
 
 
 void led_init(void)
 {
 GPIOB_SetBits( GPIO_Pin_0 );
 GPIOB_ModeCfg( GPIO_Pin_0, GPIO_ModeOut_PP_5mA );
 }
 
 int main()
 {
 UINT8 i;
 
 
 /* ÅäÖô®¿Úµ÷ÊÔ */
 DebugInit();
 PRINT( "Start @ChipID=%02X\n", R8_CHIP_ID );
 
 
 /* TouchKey²ÉÑù£ºÑ¡ÔñadcͨµÀ 2 ×ö²ÉÑù£¬¶ÔÓ¦ PA12 */
 PRINT( "\n4.TouchKey sampling...\n");
 GPIOA_ModeCfg(GPIO_Pin_12, GPIO_ModeIN_Floating);
 TouchKey_ChSampInit();
 ADC_ChannelCfg( 2 );
 
 
 led_init();
 R8_ADC_CONVERT|=(1<<0);//Æô¶¯×ª»»
 while(1)
 {
 
 ADCR=0;
 for(i=0; i<16; i++)
 {
 abcBuff = TouchKey_ExcutSingleConver(0x20);      // Á¬Ðø²ÉÑù20´Î
 ADCR+=abcBuff;
 }
 ADCR>>=4;
 PRINT("%d\r\n ", ADCR);
 if(ADCR<2000)
 GPIOB_ResetBits( GPIO_Pin_0 );
 else
 GPIOB_SetBits( GPIO_Pin_0 );
 }
 }
 
 
 void ADC_IRQHandler(void)                        //adcÖжϷþÎñ³ÌÐò
 {
 if(ADC_GetITStatus())
 {
 abcBuff[adclen] = ADC_ReadConverValue();
 ADC_StartUp(); // ×÷ÓÃÇå³ýÖжϱêÖ¾²¢¿ªÆôÐÂÒ»ÂÖ²ÉÑù
 adclen ++;
 }
 }
 
 
 
 效果图:
 
 
   
 
   
 
 | 
 |