以下是基于以上外部函数,编写的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; // 设置画笔颜色