📄 vb6+
字号:
#include "stm32f10x.h"
#include "systick.h"
#include "GLCD.h"
#include <stdio.h>
u8 FLAG=0;
u8 iii;
u16 count=0;
u16 rgb;
u8 RGB_BUFFER[7]={1,2,3,4,5,6,7};
void USART1IRQHandle(void);
void RCC_Configuration(void);
void GPIO_Configuration(void);
void USART_Configuration(void);
void NVIC_Configuration(void);
int main(void)
{
RCC_Configuration();
USART_Configuration();
NVIC_Configuration();
delay_init();
LCD_Initializtion();
LCD_Clear(Grey);
LCD_DrawLine(8,10,8,230,Red);//画线子程序(X1,Y1,X2,Y2,COLOR)
LCD_DrawLine(9,10,9,230,Red);//画线子程序(X1,Y1,X2,Y2,COLOR)
LCD_DrawLine(10,10,10,230,Red);//画线子程序(X1,Y1,X2,Y2,COLOR)
LCD_DrawLine(10,230,230,230,Blue);//画线子程序(X1,Y1,X2,Y2,COLOR)
LCD_DrawLine(10,231,230,231,Blue);//画线子程序(X1,Y1,X2,Y2,COLOR)
LCD_DrawLine(10,232,230,232,Blue);//画线子程序(X1,Y1,X2,Y2,COLOR)
GUI_Text(0,0,"Y",Blue,Cyan);
GUI_Text(230,240,"X",Blue,Grey);
GUI_Text(31,5," The curren voltage is:",Blue,Grey);
//GUI_Chinese(31,25,"当前输出电压为:",Green,Cyan);
/* Infinite loop */
while (1)
{
if(FLAG==1)
{
FLAG=0;
//LCD_DrawLine(RGB_BUFFER[0],RGB_BUFFER[1],RGB_BUFFER[2],RGB_BUFFER[3],((RGB_BUFFER[4]<<8)+RGB_BUFFER[5]));
USART_SendData(USART1,'o');
LCD_SetPoint(((RGB_BUFFER[1]<<8)+RGB_BUFFER[0]),((RGB_BUFFER[3]<<8)+RGB_BUFFER[2]),RGB565CONVERT(RGB_BUFFER[4],RGB_BUFFER[5],RGB_BUFFER[6]));//LCD_SetPoint(uint16_t Xpos,uint16_t Ypos,uint16_t point)
}
else USART1IRQHandle();
}
}
void RCC_Configuration()
{
ErrorStatus HSEStartUpStatus; //定义枚举类型变量 HSEStartUpStatus
RCC_DeInit(); //复位系统时钟设置
RCC_HSEConfig(RCC_HSE_ON); //开启HSE
HSEStartUpStatus = RCC_WaitForHSEStartUp(); //等待HSE起振 并稳定
if(HSEStartUpStatus==SUCCESS) //如果起振成功,则进入
{
RCC_HCLKConfig(RCC_SYSCLK_Div1); // 选择HCLK(AHB)时钟源为SYSLCK1分频
RCC_PCLK2Config(RCC_HCLK_Div1); // 选择pclk2时钟源为HCLK(AHB)1分频
RCC_PCLK1Config(RCC_HCLK_Div1); // 选择 pclk1时钟源为HCLK(AHB)1分频
FLASH_SetLatency(FLASH_Latency_2); // 设置Flash延时周期数为2
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//使能flash 预取缓存
/*******选择pll时钟源为HSE 1分频,倍频数为9,则PLL=8MHZ*9=2MZH*************/
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); //
RCC_PLLCmd(ENABLE); //使能PLL
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); // 等待PLL输出稳定
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); // 等待SYSCLK时钟源为pll
while(RCC_GetSYSCLKSource()!=0x08); // 等待PLL成为SYSCLK时钟源
}
}
void USART_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1,ENABLE);
/*
* USART1_TX -> PA9 , USART1_RX -> PA10
*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;// 浮空出入
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART1, &USART_InitStructure);
//USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
// USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
USART_Cmd(USART1, ENABLE);
}
void NVIC_Configuration()
{ /*定义NVIC初始化结构体*/
NVIC_InitTypeDef NVIC_InitStructure;
#ifdef VECT_TAB_RAM
/*中断向量表起始地址从0x20000000开始*/
NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0);
#else
/*中断向量表起始地址从0x80000000开始*/
NVIC_SetVectorTable(NVIC_VectTab_FLASH,0X0);
#endif
/*选择NVIC优先级分组2*/
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
/*使能EXTI0通道,2级先占优先级,0级次占优先级*/
NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
void USART1IRQHandle(void)
{
if(USART_GetFlagStatus(USART1,USART_IT_RXNE)==SET)
{
RGB_BUFFER[iii]=USART_ReceiveData(USART1);
iii++;
if(iii==7)
{
FLAG=1;
iii=0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -