关于蓝桥杯嵌入式STM32的一点收获 - 季风一号
关于蓝桥杯嵌入式STM32的一点收获
while(1)
{
first_window();
if(RB1==0)
{
Delay_Ms(300);
LCD_Clear(White);
while(1)
{
second_window();
if(RB1==0)
{
LCD_Clear(White);
if(RB1==0)Delay_Ms(150);break;
}
}
}
}
void first_window(void)
{//写下窗口一}
void second_window(void)
{//窗口二内容}
切换参数关键语句//
(jishu ==
0)?(LCD_SetTextColor(Green)):(LCD_SetTextColor(Blue));
C”,” Temp up:”,Temp_up);
LCD_DisplayStringLine(Line4,string_temp_up);
“stm32f10x.h“)
1. 新建led.c,拷贝固件库下GPIO
main.c下面关于IO口配置(io配置c口(灯口)和d口(锁存));
2.写led_contrl(u16 LED,u8
led_state)
{
if(led_state==1){给相应的灯口高电平;锁存器给高再给低}
else{给相应的灯口低电平;锁存器给高再给低}
}
2. 写led.h
#ifndef
#define
led.c下所有函数名称,和所有定义;
#endif
复制led.c内容确保是正确的,修改IO口为输入模式;
复制led。H内容修改函数和定义;
保留RCC,GPIO去掉DMA
IO口为PB0
两个DISABLE
通道修改 8
13
Float read_adc(void)
{
ADC_softwarestartconcmd();(开始采集ADC)
Value=ADC_getconversionvlue()
Return value;
}
三个函数
Nvic 不改
RTCconfig LSE改为LSI
Time_Display 添加LCD.h 显示时间
添加中断 删掉一行
Pa2 afpp
void USART_send(char *string)
{
if(string !=NULL){
do{
USART2->DR=*string++;
while((USART2->SR&0X0080)==0);
}
while(*string!=0);}
}
char RxBuf[20];
char RxCounter=0;
char rx_over = 0;
void USART2_IRQHandler(void)
{
if(USART_GetITStatus(USART2, USART_IT_RXNE) !=
RESET)
{
RxBuf[RxCounter] = USART_ReceiveData(USART2);
if((RxCounter == 19) || (RxBuf[RxCounter] ==
\’\n\’)){rx_over = 1;RxCounter = 0;}
else{RxCounter++;}
}}
用法,if(rx-over==1){rx-over==0;if(rebuf[0]==?)………………}