以下是一个基于C语言编写的STM32F103开发板和GT9147触摸屏模块实现的简单画图程序,可以在PC9引脚接收到高电平后,在4.3寸触摸屏显示收到高电平的次数:
```c
#include "stm32f10x.h"
#include "gt9147.h"
#include "lcd.h"
int main(void)
{
uint16_t count = 0;
uint8_t touch_flag = 0;
RCC_Configuration();
GPIO_Configuration();
NVIC_Configuration();
USART_Configuration();
LCD_Init();
GT9147_Init();
while (1)
{
if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_9) == Bit_SET && touch_flag == 0)
{
count++;
touch_flag = 1;
}
else if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_9) == Bit_RESET)
{
touch_flag = 0;
}
LCD_Clear(WHITE);
LCD_ShowString(30, 50, "Touch Count:", BLACK, WHITE);
LCD_ShowNum(150, 50, count, 5, BLACK, WHITE);
delay_ms(100);
}
}
void EXTI9_5_IRQHandler(void)
{
if (EXTI_GetITStatus(EXTI_Line9) != RESET)
{
EXTI_ClearITPendingBit(EXTI_Line9);
}
}
```
其中,RCC_Configuration()、GPIO_Configuration()、NVIC_Configuration()、USART_Configuration()、LCD_Init()和GT9147_Init()函数用于初始化系统时钟、GPIO、中断控制器、串口、LCD和触摸屏模块。
在主函数中,我们定义了一个计数器变量count和一个标志位变量touch_flag。当PC9引脚接收到高电平时,计数器变量count加1,并将标志位变量touch_flag设置为1,表示已经检测到一次触摸事件。如果PC9引脚没有接收到高电平,则将标志位变量touch_flag设置为0。
在