markxu 发表于 2025-2-17 14:20:33

Ai8051U学习之旅(2) - Keil图形界面配置工程

一、前言
    作为一名牛马小电工,建立自己的风格,快速开发,是必须的,领导说了,质量优先,效率优先,否则不适合做电子牛马
二、准备工作

    板子到手,仔细看了一下手册,配置开发环境的视频又刷了一遍,用户手册也仔细看了看,于是开干
    1)《AI8051U实验箱V1.2使用说明书.pdf》,好好看,不能错过一个字,避免出现低级错误,很多人在使用新东西时,总是出各种莫名的问题,其实大多是没有看说明书
    2)《AI8051U.pdf》 这个寄存器的设置说明,各种注意事项,都要仔细阅读,包括小字部分也不要放过
三、开干吧
3.1 基于定时器的工程改编
      个人的风格是,每个.c文件+一个.h文件,因为是学习,所以注释尽量详细,但也不能太繁琐

      文件夹包括:
   code - 存放源文件
   Prj    - 存入keil工程文件
   SI   - 存放sourceInsight
   ReadMe.txt - 简单的程序记录
   
3.2 在程序中作了界面配置
      

/*----------------------------------------------------------------------------------------------------------------------
* Copyright(c) 2025, Mark Xu Work Studio R&D Department. All rights reserved.
* 文件名称 : SysConfig.h
* 文件版本 : V1.0.0
* 功能描述 : 系统配置文件
* 创建人员 : Mark Xu
* 创建日期 : 2025/02/17
----------------------------------------------------------------------------------------------------------------------*/

#ifndef __SYSCONFIG_H__
#define __SYSCONFIG_H__

// <<< Use Configuration Wizard in Context Menu >>>

//----------------------------------------------------------------------------------------------------------------------
//<h> The Project information

// <s> The Hardware Version
#define HW_PCBA_VERSION             "R00"

// <s> The Firmware Version
#define FW_FIRMWARE_VERSION         "R00"

//</h>

//----------------------------------------------------------------------------------------------------------------------
//<h> The mcu peripheral config
// <q> The timer0 config
//<i> Enable or Disable
#define DRV_TIMER0_EN                                        (1)                //定时器0,0-禁用,1-使能

// <q> The timer1 config
//<i> Enable or Disable
#define DRV_TIMER1_EN                                        (0)                //定时器1,0-禁用,1-使能

// <q> The timer2 config
//<i> Enable or Disable
#define DRV_TIMER2_EN                                        (0)                //定时器2,0-禁用,1-使能

// <q> The pwm config
//      <i> enable or disable
#define DRV_PWM_EN                                                (0)                //PWM模块,0-禁用,1-使能

// <q> The comparor config
//      <i> enable or disable
#define DRV_CMP_EN                                                (0)                //比较器, 0-禁用,1-使能

// <q> The uart1 config
//<i> Enable or Disable
#define DRV_UART1_EN                                        (0)                //串口,   0-禁用,1-使能
// <q> The uart2 config
//<i> Enable or Disable
#define DRV_UART2_EN                                        (0)                //串口,   0-禁用,1-使能
// <q> The uart3 config
//<i> Enable or Disable
#define DRV_UART3_EN                                        (0)                //串口,   0-禁用,1-使能
// <q> The uart4 config
//<i> Enable or Disable
#define DRV_UART4_EN                                        (0)                //串口,   0-禁用,1-使能

// <q> The spi function
//<i> Enable or Disable
#define DRV_SPI_EN                           (0)                //SPI功能,0-禁止, 1-使能

// <q> The RTC function
//<i> Enable or Disable
#define DRV_RTC_EN                           (0)                //RTC功能,0-禁止,1-使能

// <q> The watchdog config
//      <i> enable or disable
#define DRV_WDT_EN                                                (0)                //看门狗, 0-禁用,1-使能
// </h>


//应用测试相关
//----------------------------------------------------------------------------------------------------------------------
//<h> The function test module
// <q> The adc sample test
//<i> Enable or Disable
#define APP_ADC_TEST_EN                                        (0)                //ADC采样测试,0-禁用,1-使能

// <q> The eeprom write and read test
//<i> Enable or Disable
#define APP_EEPROM_TEST_EN                              (0)                //eeporm测试,   0-禁用,1-使能
// </h>


//调试打印相关
// <e> The debug print function
//         <i> Enable or Disable
#define APP_DEBUG_PRINT_EN                              (0)                //调试打功能, 0-禁用,1-使能
#if (APP_DEBUG_PRINT_EN)
      // <q> The main module debug print function
      //      <i> enable or disable
      #define MAIN_PRINT_EN                              (1)                //主程序模块,打印功能
      // <q> The system module debug print function
      //      <i> enable or disable
      #define SYS_PRINT_EN                              (0)                //SYS模块, 打印功能
      // <q> The charging module debug print function
      //      <i> enable or disable
      #define CHRG_PRINT_EN                              (0)                //充电模块,打印功能
      // <q> The key module debug print function
      //      <i> enable or disable
      #define KEY_PRINT_EN                              (0)                //按键模块,打印功能
      // <q> The led module debug print function
      //      <i> enable or disable
      #define LED_PRINT_EN                              (0)                //显示模块,打印功能

      //如果忘记打开宏“DRV_UART_EN”,在编译时,此处会有提示
      #if (!DRV_UART_EN)      
                #error Please enable the uart driver (set the macro "DRV_UART_EN" to 1)!!!
      #endif //#if (!DRV_UART_EN)
#else
      #define MAIN_PRINT_EN                              (0)                //主程序模块,打印功能
      #define SYS_PRINT_EN                              (0)                //SYS模块, 打印功能
      #define CHRG_PRINT_EN                              (0)                //充电模块,打印功能
      #define KEY_PRINT_EN                              (0)                //按键模块,打印功能
      #define LED_PRINT_EN                              (0)                //显示模块,打印功能
#endif //#if (APP_DEBUG_PRINT_EN)
// </e>



// <<< end of configuration section >>>

#endif //#ifndef __SYSCONFIG_H__/*----------------------------------------------------------------------------------------------------------------------
* Copyright(c) 2024, Mark Xu Work Studio R&D Department. All rights reserved.
* 文件名称 : main.c
* 文件版本 : V1.0.0
* 功能描述 : 主应用模块
* 创建人员 : Mark Xu
* 创建日期 : 2025/02/17
----------------------------------------------------------------------------------------------------------------------*/

#include "main.h"                        

//----------------------------------------------------------------------------------------------------------------------
// 配置文件                                       
//----------------------------------------------------------------------------------------------------------------------

//----------------------------------------------------------------------------------------------------------------------
// 类型重定义                                       
//----------------------------------------------------------------------------------------------------------------------

//----------------------------------------------------------------------------------------------------------------------
// 常量、宏   
//----------------------------------------------------------------------------------------------------------------------

//----------------------------------------------------------------------------------------------------------------------
// 局部变量
//----------------------------------------------------------------------------------------------------------------------

//----------------------------------------------------------------------------------------------------------------------
// 全局变量
//----------------------------------------------------------------------------------------------------------------------

//----------------------------------------------------------------------------------------------------------------------
// 本地函数声明
//----------------------------------------------------------------------------------------------------------------------


/*----------------------------------------------------------------------------------------------------------------------
* 函数名称 :void main(void)
* 功能描述 :主程序入口
* 入口参数 :无
* 出口参数 :无
* 备注说明 :无
----------------------------------------------------------------------------------------------------------------------*/
void main(void)
{
      Sys_Init();      //系统初始化
      
      while(1)
      {
                if (g_bSysTick10msFlag)
                {
                        Led_LoopProc();
                        g_bSysTick10msFlag = FALSE;
                }
      
      }
}





      3.3.2 main.h

/*----------------------------------------------------------------------------------------------------------------------
* Copyright(c) 2025, Mark Xu Work Studio R&D Department. All rights reserved.
* 文件名称 : main.h
* 文件版本 : V1.0.0
* 功能描述 : 主程序头文件
* 创建人员 : Mark Xu
* 创建日期 : 2025/02/17
----------------------------------------------------------------------------------------------------------------------*/
#ifndef      __MAIN_H__
#define      __MAIN_H__

#include "includes.h"

//----------------------------------------------------------------------------------------------------------------------
// 常量、宏
//----------------------------------------------------------------------------------------------------------------------

//----------------------------------------------------------------------------------------------------------------------
// 类型重定义                                    
//----------------------------------------------------------------------------------------------------------------------

//----------------------------------------------------------------------------------------------------------------------
// 全局变量
//----------------------------------------------------------------------------------------------------------------------

//----------------------------------------------------------------------------------------------------------------------
// 全局函数
//----------------------------------------------------------------------------------------------------------------------

#endif //#ifndef      __MAIN_H__
   
其它源文件就不贴了,有兴趣的可以参考附件工程:






雾山大叔 发表于 2025-2-21 19:38:14

上午写的跑马灯没有注意是低电平控制的,晚上在板子跑时才发现,在些更改一下代码
void Led_LoopProc(void)
{
        s_u8LedTickCnt++;
        if (s_u8LedTickCnt < 15)
                return;
        s_u8LedTickCnt = 0;
   
    LED_PORT <<= s_u8LedLoopCnt;
   
    s_u8LedLoopCnt++;
    if (s_u8LedLoopCnt > 8 )
    {
       LED_PORT = 0xff;
       s_u8LedLoopCnt = 0;
    }
}

attach://85480.mp4

zhaoye818 发表于 2025-2-22 06:19:37

{:qiang:}
页: [1]
查看完整版本: Ai8051U学习之旅(2) - Keil图形界面配置工程