关于蓝桥杯嵌入式STM32的一点收获

各社团成员培训时自己总结的一点材料,直接粘过来的,可能有些朋友看不明白,总之这个比赛吧;有很多技巧,掌握到技巧能省我们半个月时间,我说的是针对这个比赛,对于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));
 
sprintf(string_temp_up,"%s%d   
C","  Temp up:",Temp_up);

LCD_DisplayStringLine(Line4,string_temp_up);
 
LED.c(.c和.h下路径都包含#include
“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
 
Key.c

复制led.c内容确保是正确的,修改IO口为输入模式;

复制led。H内容修改函数和定义;
 
ADC

保留RCC,GPIO去掉DMA

IO口为PB0

两个DISABLE

通道修改   8 
13

Float read_adc(void)

{

ADC_softwarestartconcmd();(开始采集ADC)

Value=ADC_getconversionvlue()

Return   value;

}
 
RTC

三个函数

Nvic   不改

RTCconfig   LSE改为LSI

Time_Display  添加LCD.h  显示时间

添加中断  删掉一行
 
UART
Pa3 infloting

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]==?)………………}
上一篇:js打开新页面与关闭当前页面


下一篇:访问localhost文件下的testmysql.php文件报Not Found