NUC140之工程初始化

本人的所选的时NUC140VE3AN,50MHz主频,128K字节 FLASH,16K字节RAM。

工程起步的话最好从开发版例程或者网上下载,自己从零新建工程的话需要如下一些文件

还需要官方的库函数以及对应的库文件

之后还要正确设置KEIL工程(如果用的是KEIL开发的话)

这些对入门者来说都不友好,所以建议在别人新建好的例程上进行二次开发,省时省力,尤其是现如今ARM芯片种类繁多,应当把精力用在最关键的地方。

然后先不要管启动的.s程序。

直接从Main函数开始,贴出程序如下:

/*****************************************
 *文件名: Tx_main.c                      *
 *功能:主程序                   *
 *****************************************/
#include "Tx_control_include.h"
       
/****************************************
************* Main Function**************
*****************************************/
int32_t main (void)
{    
     //initialize_watchdog ();                   //初始化看门狗
    
    setup_HCLK ();                                //设置HCLK即CPU主频
    setup_interrupt_order();                       //设置中断优先级

    at24c32_initialize ();                      //初始化at24c32
    read_default_value ();                      //读取电台设置默认值
    I2C_remote_initialize ();                   //初始化I2C0

     initialize_pins ();                         //初始化引脚

    initialize_timer ();                        //初始化timer
    initialize_timer0 ();                       //初始化timer0
    initialize_timer1 ();                       //初始化timer1
    initialize_timer2 ();                        //初始化timer2
    initialize_timer3 ();                        //初始化timer3

    error_register1.error_sample_all = 0;        //初始错误寄存器
    status_register2.status_sample_all = 0;
    error_output_recover ();                    //恢复上电复位时输出故障信息为正常

    initialize_UART_clock ();                    //初始化UART0时钟
    initialize_UART ();                         //初始化UART0

    VOP_OK_interrupt_initialize ();             //安装供电异常中断

    ADC_initialize ();                          //初始化ADC
    initialize_SPI ();                          //初始化SPI
    setup_ptt_limit_time (PTT_limit_time);     

    while (1)                                                        
    {
        monitor_D6 ();                          //监测D6
        monitor_D2 ();                          //监测D2
        monitor_D4 ();                          //监测D4
    }
}

头文件如下:

#ifndef Tx_control_include_h
#define Tx_control_include_h
#include "stdint.h"
#include "DrvSYS.h"
#include "initialize_pins.h"
#include "at24c32.h"
#include "common_variables.h"
#include "I2C_remote.h"
#include "monitor_D2.h"
#include "monitor_D4.h"
#include "monitor_D6.h"
#include "ADC.h"
#include "PTT_control.h"
#include "SPI_U27_U28.h"    
#include "temperature_error_solution.h"         
#include "UART.h"
#include "supply_28_error_solution.h"
#include "VOP_OK_error_solution.h" 
#include "timer.h"
#include "DIRF_DIRR_solution.h"
#include "error_solution.h"
#include "read_default_value.h"
#include "watch_dog.h"
#include "setup_HCLK.h"
#endif

里面的一些子程序在我的其他文章有写:

initialize_watchdog ();                   //初始化看门狗
 https://blog.csdn.net/pxy198831/article/details/8589297

 setup_HCLK ();                                //设置HCLK即CPU主频

https://blog.csdn.net/pxy198831/article/details/8563717

initialize_timer ();                        //初始化timer

https://blog.csdn.net/pxy198831/article/details/8526338

https://blog.csdn.net/pxy198831/article/details/8856579

ADC_initialize ();                          //初始化ADC

https://blog.csdn.net/pxy198831/article/details/8611271

initialize_pins ();                         //初始化I/O口

https://blog.csdn.net/pxy198831/article/details/85231631

initialize_UART ();                         //初始化UART0

https://blog.csdn.net/pxy198831/article/details/85253604

其余的子程序今后会贴出来,希望对大家有帮助。

SPI的子程序:

https://blog.csdn.net/pxy198831/article/details/85268087

这是编译结果,程序已剪裁,CODE+RO-DATA=程序占用的FLASH大小

RW-DATA+ZI-data(初始化为0的数据)=程序占用RAM大小。

其余代码可从我的其他文章里找,上传的代码保留了最小化工程必须的系统文件和开发库。

你还需要NUC140的手册和开发库的手册稍后上传。(或自行百度)

工程例程代码上传地址为https://download.csdn.net/download/pxy198831/10866894

有钱的捧个钱场,有人的捧个人场^_^

猜你喜欢

转载自blog.csdn.net/pxy198831/article/details/85160230