• 关于蓝桥杯嵌入式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] == ' ')){rx_over = 1;RxCounter = 0;}
     else{RxCounter++;}
    }}
    用法,if(rx-over==1){rx-over==0;if(rebuf[0]==?)………………}
    Smartkeke
  • 相关阅读:
    ST-Link STVP Cannot communicate with the device!
    IAR stm8带库的工程模板
    centos7和redhat7的比特币环境搭建
    比特币Bitcoin源代码安装编译
    Golang1.8编译静态库给C使用
    Go与C语言的互操作
    彻底解决mysql中文乱码
    Androidndk开发打包时我们应该如何注意平台的兼容(x86,arm,arm-v7a)
    Android NDK生成及连接静态库与动态库
    android NDK 使用(多个)静态库生成动态库
  • 原文地址:https://www.cnblogs.com/smartkeke/p/6820437.html
Copyright © 2020-2023  润新知