以下是基于以上外部函数,编写的STM32F103开发板和GT9147触摸屏模块实现的程序,可以在PC9引脚接收到高电平后,在4.3寸触摸屏上显示收到高电平的次数:
```c
#include "stm32f10x.h"
#include "delay.h"
#include "usart.h"
#include "lcd.h"
#include "touch.h"
int main(void)
{
    u16 x, y;
    u8 count = 0;
    // 初始化硬件
    delay_init();
    USART1_Init();
    LCD_Init();
    GT9147_Init();
    while(1)
    {
        if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_9) == 1) // 如果PC9引脚接收到高电平
        {
            count++; // 计数器加1
            LCD_ShowNum(100, 100, count, 3, RED); // 在屏幕上显示计数器的值
            delay_ms(500); // 延时一段时间,避免重复计数
        }
        if(GT9147_Scan(&x, &y)) // 扫描触摸屏
        {
            if(x > 400 && y > 240) // 如果触摸点在CLR按钮上
            {
                LCD_Clear(WHITE); // 清除屏幕
                count = 0; // 计数器清零
            }
            else if(x < 80 && y > 240) // 如果触摸点在RED颜色块上
            {
                POINT_COLOR = RED; // 设置画笔颜色为红色
            }
            else if(x < 160 && y > 240) // 如果触摸点在GREEN颜色块上
            {
                POINT_COLOR = GREEN; // 设置画笔颜色为绿色
            }
            else if(x < 240 && y > 240) // 如果触摸点在BLUE颜色块上
            {
                POINT_COLOR = BLUE; // 设置画笔颜色