色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

S32K1XX系列keil下新建工程及驗(yàn)證

CHANBAEK ? 來(lái)源:Kevin的學(xué)習(xí)站 ? 作者:程序員Kevin ? 2023-09-19 10:15 ? 次閱讀

S32K1XX 系列 keil下新建工程

1.新建6個(gè)文件夾

名稱如下:

圖片

Project:用于存放工程文件;

HARDWARE:驅(qū)動(dòng)層,用于存放驅(qū)動(dòng)文件,如:GPIO、UART、SPI、I2CCAN

DEVICE:設(shè)備層,用于存放設(shè)備文件,如MU6050、LCD;

MiddleLayer:中間層,用于在應(yīng)用層和設(shè)備層搭建橋梁;

APPLICATION:應(yīng)用層,存放具體應(yīng)用程序,呼吸燈;

COMMON:公共文件,存放公用文件;

2、新建工程

2.1、點(diǎn)擊Project-> New uVision Project

圖片

圖片2.2、選擇芯片型號(hào),根據(jù)需求選擇,本次測(cè)試采樣S32K116

圖片

2.3、勾選 CMSIS下的CORE和Device下的Startup,點(diǎn)擊OK

圖片

2.4、生成如下工程

圖片

2.5、在工程中添加文件夾

圖片

2.6、新建main.c文件,并添加到Project下

圖片

2.7、編譯之后會(huì)出現(xiàn)報(bào)錯(cuò)

圖片解決如下:

圖片

圖片

2.8、再次編譯,無(wú)警告無(wú)報(bào)錯(cuò)
圖片

3、驗(yàn)證工程

在HARDWARE文件夾下新建:GPIO.c、GPIO.h兩個(gè)文件

GPIO.c進(jìn)行GPIO設(shè)置

1#include "GPIO.h"
 2
 3/* 定義五個(gè)指針數(shù)組保存 GPIOX 的地址 */
 4GPIO_MemMapPtr GPIOX[5] = {PTA, PTB, PTC, PTD, PTE}; //定義五個(gè)指針數(shù)組保存 GPIOX 的地址
 5PORT_MemMapPtr PORTX[5] = {PORTA, PORTB, PORTC, PORTD, PORTE};
 6
 7
 8void GPIO_PinInit(PTXn_e ptx_n, GPIO_CFG dir, uint8_t data)
 9{
10
11    uint8_t ptx, ptn;
12
13    ptx = PTX(ptx_n);
14    ptn = PTn(ptx_n);
15
16    /* 使能端口時(shí)鐘 */
17    PCC- >PCCn[PCC_PORTA_INDEX + ptx] = PCC_PCCn_CGC_MASK;
18
19    /* 清除之前的復(fù)用功能 */
20    PORTX[ptx]- >PCR[ptn] &= ~(uint32)PORT_PCR_MUX_MASK;
21
22    /* 設(shè)置復(fù)用功能為GPIO即普通IO口 */
23    PORTX[ptx]- >PCR[ptn] |= PORT_PCR_MUX(1);
24
25    /* 配置GPIO模式 */
26    PORTX[ptx]- >PCR[ptn] |= dir;
27
28    /* 設(shè)置GPIO方向 */
29    if (dir)
30    {
31        GPIOX[ptx]- >PDDR |= (uint32)(1 < < ptn);
32    }
33    else
34    {
35        GPIOX[ptx]- >PDDR &= ~(uint32)(1 < < ptn);
36    }
37
38    /* 設(shè)置端口默認(rèn)狀態(tài) */
39    if (data)
40    {
41        GPIOX[ptx]- >PDOR |= (uint32)(1 < < ptn);
42    }
43    else
44    {
45        GPIOX[ptx]- >PDOR &= ~(uint32)(1 < < ptn);
46    }
47}
48
49void GPIO_PinWrite(PTXn_e ptx_n, uint8_t data)
50{
51    uint8_t ptx, ptn;
52
53    ptx = PTX(ptx_n);
54    ptn = PTn(ptx_n);
55
56    /* 設(shè)置端口默認(rèn)狀態(tài) */
57    if (data)
58    {
59        GPIOX[ptx]- >PDOR |= (uint32)(1 < < ptn);
60    }
61    else
62    {
63        GPIOX[ptx]- >PDOR &= ~(uint32)(1 < < ptn);
64    }
65}

GPIO.h

1#ifndef __GPIO_H_
 2#define __GPIO_H_
 3#include "common.h"
 4#include "stdint.h"
 5#include "S32K116.h"
 6
 7
 8//定義管腳狀態(tài)
 9typedef enum GPIO_CFG
10{
11    //這里的值不能改!!!
12    GPI         = 0x00,                       //定義管腳輸入方向      GPIOx_PDDRn里,0表示輸入,1表示輸出
13    GPO         = 0x01,                       //定義管腳輸出方向
14
15    GPI_DOWN    = 0x02,                       //輸入下拉              PORTx_PCRn需要PE=1,PS=0
16    GPI_UP      = 0x03,                       //輸入上拉              PORTx_PCRn需要PE=1,PS=1
17    GPI_PF      = 0x10,                       //輸入,帶無(wú)源濾波器,濾波范圍:10 MHz ~ 30 MHz 。不支持高速接口( >=2MHz)  0b10000           Passive Filter Enable
18    GPI_DOWN_PF = GPI_DOWN | GPI_PF,          //輸入下拉,帶無(wú)源濾波器
19    GPI_UP_PF   = GPI_UP   | GPI_PF,          //輸入上拉,帶無(wú)源濾波器
20
21    GPO_HDS     = 0x41,                       //輸出高驅(qū)動(dòng)能力   0b100 0001    High drive strength
22    GPO_SSR     = 0x05,                       //輸出慢變化率     0b101         Slow slew rate
23    GPO_HDS_SSR = GPO_HDS | GPO_SSR,          //輸出高驅(qū)動(dòng)能力、慢變化率
24} GPIO_CFG;  //最低位為0,肯定是輸入;GPI_UP 和 GPI_UP_PF的最低位為1,其他為輸出
25
26
27
28void GPIO_PinInit(PTXn_e ptx_n, GPIO_CFG dir, uint8_t data);
29void GPIO_PinWrite(PTXn_e ptx_n, uint8_t data);
30
31#endif

新建clocks_and_modes_S32K11x.c和clocks_and_modes_S32K11x.h文件,用于初始化系統(tǒng)時(shí)鐘;
clocks_and_modes_S32K11x.c

1#include "S32K116.h"    /* include peripheral declarations S32K116 */
 2#include "clocks_and_modes_S32K11x.h"
 3
 4void SOSC_init_40MHz(void)
 5{
 6    /*! SOSC Initialization (40 MHz):
 7     * =============================
 8     * */
 9    SCG- >SOSCDIV = SCG_SOSCDIV_SOSCDIV1(1)|
10                   SCG_SOSCDIV_SOSCDIV2(1);     /* SOSCDIV1 & SOSCDIV2 =1: divide by 1      */
11    SCG- >SOSCCFG  = SCG_SOSCCFG_RANGE(3)|       /* Range=3: High frequency range selected   */
12                    SCG_SOSCCFG_EREFS_MASK;     /* HGO=0:   Config xtal osc for low power   */
13                                                  /* EREFS=1: Input is external XTAL          */
14
15  while(SCG- >SOSCCSR & SCG_SOSCCSR_LK_MASK);     /* Ensure SOSCCSR unlocked                          */
16  SCG- >SOSCCSR = SCG_SOSCCSR_SOSCEN_MASK;         /* LK=0:          SOSCCSR can be written                */
17                                                /* SOSCCMRE=0:    OSC CLK monitor IRQ if enabled        */
18                                                /* SOSCCM=0:      OSC CLK monitor disabled          */
19                                                /* SOSCERCLKEN=0: Sys OSC 3V ERCLK output clk disabled */
20                                                /* SOSCLPEN=0:    Sys OSC disabled in VLP modes         */
21                                                /* SOSCSTEN=0:    Sys OSC disabled in Stop modes        */
22                                                /* SOSCEN=1:      Enable oscillator                     */
23
24while(!(SCG- >SOSCCSR & SCG_SOSCCSR_SOSCVLD_MASK));    /* Wait for sys OSC clk valid */
25}
26
27void RUN_mode_48MHz (void)
28{
29    /*! Fast IRC is enabled and trimmed to 48 MHz in reset (default).
30     * Set FIRCDIV1 & FIRCDIV2 = 1: divide by 1 = 48 MHz.
31     * */
32    SCG- >FIRCDIV = SCG_FIRCDIV_FIRCDIV1(1)|
33                   SCG_FIRCDIV_FIRCDIV2(1);
34
35    /*! Fast IRC is enabled in high range (8MHz) in reset (default).
36     * Set FIRCDIV1 & FIRCDIV2 = 1: divide by 1 = 8 MHz.
37     * */
38    SCG- >SIRCDIV = SCG_SIRCDIV_SIRCDIV1(1)|
39                   SCG_SIRCDIV_SIRCDIV2(1);
40
41/*!
42 *  Select FIRC for RUN mode.
43 *  ===========================
44 */
45  SCG- >RCCR=SCG_RCCR_SCS(3)      /* Select FIRC as clock source                                 */
46    |SCG_RCCR_DIVCORE(0b00)      /* DIVCORE=0, div. by 1: Core clock = 48 MHz                     */
47    |SCG_RCCR_DIVBUS(0b00)       /* DIVBUS=0, div. by 1: bus clock = 48 MHz                     */
48    |SCG_RCCR_DIVSLOW(0b01);     /* DIVSLOW=1, div. by 2: SCG slow, flash clock= 24 MHz            */
49
50  while (((SCG- >CSR & SCG_CSR_SCS_MASK) > > SCG_CSR_SCS_SHIFT ) != 3) {}    /* Wait for sys clk src = SPLL */
51}

clocks_and_modes_S32K11x.h

1#ifndef CLOCKS_AND_MODES_S32K11X_H_
2#define CLOCKS_AND_MODES_S32K11X_H_
3
4void SOSC_init_40MHz (void);
5void RUN_mode_48MHz (void);
6
7#endif /* CLOCKS_AND_MODES_S32K11X_H_ */

在main函數(shù)中對(duì)GPIO進(jìn)行操作,將GPIO -PTB2設(shè)置為輸出模式,輸出高電平。
main.c

1#include < stdio.h >
 2#include "S32K116.h"    /* include peripheral declarations S32K116 */
 3#include "clocks_and_modes_S32K11x.h"
 4#include "GPIO.h"
 5
 6//關(guān)閉看門狗
 7void WDOG_disable (void)
 8{
 9  WDOG- >CNT=0xD928C520;     /* Unlock watchdog         */
10  WDOG- >TOVAL=0x0000FFFF;   /* Maximum timeout value     */
11  WDOG- >CS = 0x00002100;    /* Disable watchdog         */
12}
13
14
15//void LED_init()
16//{
17//        /*LED--*/
18//    PCC- >PCCn[PCC_PORTB_INDEX ]|=PCC_PCCn_CGC_MASK; //使能PTD端口時(shí)鐘
19//    PORTB- >PCR[2] = PORT_PCR_MUX(1);/* Port : MUX = GPIO                */
20//    PTB- >PDDR |= 1< 
21//    PTB- >PSOR |= 1< 
22////    PTA- >PCOR |= 1< 
23//}
24
25
26int main()
27{
28    WDOG_disable();
29    SOSC_init_40MHz();  /* Initialize system oscillator for 40 MHz xtal */
30    RUN_mode_48MHz();       /* Init clocks: 48 MHz sys, core and bus, 24 MHz flash. */
31//    LED_init();
32
33    GPIO_PinInit(PTB2,GPO,0);
34
35    while(1)
36    {
37        GPIO_PinWrite(PTB2,1);
38    }
39
40    return 0;
41}

添加.h文件路徑

圖片

并將S32K116.文件保存在common文件夾下
圖片

配置Jlink下載環(huán)境

圖片選擇S32K116

圖片

圖片

下載工程;用萬(wàn)用表或者示波器即可查看PTB2輸出高電平。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 示波器
    +關(guān)注

    關(guān)注

    113

    文章

    6243

    瀏覽量

    184878
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2744

    瀏覽量

    463662
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1235

    瀏覽量

    101378
  • keil
    +關(guān)注

    關(guān)注

    68

    文章

    1212

    瀏覽量

    166864
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1204

    瀏覽量

    52082
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    S32K1XX系列MCU復(fù)位問題的解決方法

    最近有朋友調(diào)試S32K1XX系列的一塊控制板,遇到了一個(gè)奇怪的問題,就是板子不斷復(fù)位,無(wú)法連接下載器,而且問題找不到,于是我協(xié)助他調(diào)試了一,然后最后發(fā)現(xiàn)竟然是芯片內(nèi)部的復(fù)位導(dǎo)致的,而且10塊板子均有復(fù)位波形【注意不是一直低電平
    發(fā)表于 08-23 13:03 ?2395次閱讀
    <b class='flag-5'>S32K1XX</b><b class='flag-5'>系列</b>MCU復(fù)位問題的解決方法

    STM32新建工程

    串口芯片驅(qū)動(dòng)路徑:Cortex-M4學(xué)習(xí)資料軟件安裝MDKCH340_CH341 1.1.2 新建工程Cortex-M系列工程有兩個(gè)版本樣式,分別是“寄存器”版和“庫(kù)函數(shù)”版。“寄存器”版:在
    發(fā)表于 01-12 14:47

    S32K1xx系列MCU的EEE(Emulated EEPROM)使用詳解 精選資料分享

    內(nèi)容提要引言(基于MCU的嵌入式系統(tǒng)中EEPROM的實(shí)現(xiàn)方式)1. S32K1xx系列MCU的EEE工作機(jī)制詳解1.1 S32K1xx系列M
    發(fā)表于 09-13 07:43

    S32K1xx系列MCU啟動(dòng)過(guò)程是怎樣的

    內(nèi)容提要注:本文摘自NXP工程師胡恩偉的微信公眾號(hào)"汽車電子expert成長(zhǎng)之路",大家感興趣可以關(guān)注一。引言1. S32K1xx系列MC
    發(fā)表于 11-01 07:10

    keil4怎么新建工程

    ;2.keil新建工程keil4怎么新建工程);3.選擇芯片時(shí)選擇STC系列的15F2K60S
    發(fā)表于 01-27 06:38

    如何搭建s32k1xx的環(huán)境?

    如何搭建s32k1xx的環(huán)境?
    發(fā)表于 02-09 07:55

    S32K3xx EMIOS模塊與S32K1xx FTM模塊相比有什么優(yōu)勢(shì)?

    我想知道S32K3xx EMIOS模塊與S32K1xx FTM模塊相比有什么優(yōu)勢(shì)?
    發(fā)表于 03-31 09:08

    FreeMaster插件模塊它支持S32K1xx系列嗎?

    FreeMaster插件模塊它支持S32K1xx系列嗎?
    發(fā)表于 05-06 06:36

    S32K1xx開發(fā)包和S32K1實(shí)時(shí)驅(qū)動(dòng)的區(qū)別是什么?

    S32DS (Design Studio) 中的 S32K1xx 開發(fā)包是什么。 什么是 S32K1 實(shí)時(shí)驅(qū)動(dòng)程序。 區(qū)別和應(yīng)該安裝哪個(gè)還是都安裝?
    發(fā)表于 05-24 10:39

    AN5426,S32K1XX微控制器的硬件設(shè)計(jì)指南

    本文檔為S32K1XX微控制器的硬件設(shè)計(jì)指南,有需要的可以下載!
    發(fā)表于 12-22 16:12 ?75次下載
    AN5426,<b class='flag-5'>S32K1XX</b>微控制器的硬件設(shè)計(jì)指南

    NXP半導(dǎo)體產(chǎn)品S32K1XX數(shù)據(jù)手冊(cè)下載

    NXP半導(dǎo)體產(chǎn)品S32K1XX數(shù)據(jù)手冊(cè)下載
    發(fā)表于 08-02 09:23 ?15次下載

    vb關(guān)閉當(dāng)前應(yīng)用重新加載_S32K1xx系列MCU應(yīng)用指南之芯片鎖死(lockup)復(fù)位原因分析與恢復(fù)方法詳解...

    內(nèi)容提要1. S32K1xx系列MCU的存儲(chǔ)器加密(Security)和保護(hù)(Protection)工作機(jī)制1.1 S32K1xx系列MCU
    發(fā)表于 10-28 21:06 ?11次下載
    vb關(guān)閉當(dāng)前應(yīng)用重新加載_<b class='flag-5'>S32K1xx</b><b class='flag-5'>系列</b>MCU應(yīng)用指南之芯片鎖死(lockup)復(fù)位原因分析與恢復(fù)方法詳解...

    S32K1xx系列MCU的EEE(Emulated EEPROM)使用詳解

    內(nèi)容提要引言(基于MCU的嵌入式系統(tǒng)中EEPROM的實(shí)現(xiàn)方式)1. S32K1xx系列MCU的EEE工作機(jī)制詳解1.1 S32K1xx系列M
    發(fā)表于 11-18 17:21 ?25次下載
    <b class='flag-5'>S32K1xx</b><b class='flag-5'>系列</b>MCU的EEE(Emulated EEPROM)使用詳解

    HC32L系列MCU在KEIL新建工程后在Jli

    **HC32L系列MCU在KEIL新建工程后在Jli
    發(fā)表于 11-18 17:36 ?13次下載
    HC32L<b class='flag-5'>系列</b>MCU在<b class='flag-5'>KEIL</b><b class='flag-5'>新建工程</b>后在Jli

    基于S32K1xx 系列的汽車通用評(píng)估板方案

    本方案面向通用汽車應(yīng)用,提供豐富的測(cè)試組件,板載 CAN、LIN 和 UART/SCI 接口,并具有 microUSB 和 12V 電源兩種供電選項(xiàng),可幫助用戶快速上手開發(fā) S32K1xx 相關(guān)
    的頭像 發(fā)表于 03-16 10:40 ?1526次閱讀
    基于<b class='flag-5'>S32K1xx</b> <b class='flag-5'>系列</b>的汽車通用評(píng)估板方案
    主站蜘蛛池模板: 国产成人综合网在线观看| 试看2分钟AA片| 69国产精品成人无码视频| 精品人妻一区二区三区视频53 | 灰原哀被啪漫画禁漫| 小sao货ji巴cao死你视频| 国产成人无码视频一区二区三区 | 挤奶门事件完整照片 | 黑人巨茎vide抽搐| 亚洲1区2区3区精华液| 国产精品日本欧美一区二区 | 最新国产在线视频| 久久伊人影视| 中国女人内谢69xxxxxx直播| 久久精品综合电影| 在线播放免费人成视频| 久久伊人影院| 97精品国产高清在线看入口| 猫咪最新破解版下载| 99RE8国产这里只有精品| 嫩草电影网嫩草影院| av在线色| 日韩美女爱爱| 国产成人久视频免费| 性感尼姑风流寺| 国内久久久久影院精品| 亚洲一区成人| 久久天天躁狠狠躁夜夜呲| 3D内射动漫同人资源在线观看| 美美哒免费影视8| bbwvideoa欧美老妇| 日本特黄网站| 国产成人精品免费青青草原app| 我解开了岳的乳第一个女人| 国产无遮挡又黄又爽在线视频 | 妖精视频一区二区免费| 久久偷拍vs国产在线播放| 97国产成人精品免费视频| 人体内射精一区二区三区| 冠希和阿娇13分钟在线视频| 小黄文纯肉短篇|