打印
[应用方案]

BSP包里面的ISP_UART的改写

[复制链接]
楼主: 東南博士
手机看帖
扫描二维码
随时随地手机跟帖
21
東南博士|  楼主 | 2021-6-2 08:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
/****************************************************************************
* @file     MyProject031.c
* @version  V1.22
* @date     2021/06/02-08:44:54
* @brief    NuMicro generated code file
*
* SPDX-License-Identifier: Apache-2.0
*
* Copyright (C) 2013-2021 Nuvoton Technology Corp. All rights reserved.
*****************************************************************************/

/********************
MCU:M031TB0AE(QFN33)
Pin Configuration:
Pin17:ICE_DAT
Pin18:ICE_CLK
Pin19:UART2_TXD
Pin20:UART2_RXD
********************/

使用特权

评论回复
22
東南博士|  楼主 | 2021-6-2 08:48 | 只看该作者
#include "M031Series.h"

void MyProject031_init_ice(void)
{
    SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF1MFP_Msk | SYS_GPF_MFPL_PF0MFP_Msk);
    SYS->GPF_MFPL |= (SYS_GPF_MFPL_PF1MFP_ICE_CLK | SYS_GPF_MFPL_PF0MFP_ICE_DAT);

    return;
}

void MyProject031_deinit_ice(void)
{
    SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF1MFP_Msk | SYS_GPF_MFPL_PF0MFP_Msk);

    return;
}

关于ICE PIN 使能

使用特权

评论回复
23
東南博士|  楼主 | 2021-6-2 08:49 | 只看该作者
关于uart2的使能与禁止

void MyProject031_init_uart2(void)
{
    SYS->GPC_MFPL &= ~(SYS_GPC_MFPL_PC1MFP_Msk | SYS_GPC_MFPL_PC0MFP_Msk);
    SYS->GPC_MFPL |= (SYS_GPC_MFPL_PC1MFP_UART2_TXD | SYS_GPC_MFPL_PC0MFP_UART2_RXD);

    return;
}

void MyProject031_deinit_uart2(void)
{
    SYS->GPC_MFPL &= ~(SYS_GPC_MFPL_PC1MFP_Msk | SYS_GPC_MFPL_PC0MFP_Msk);

    return;
}

使用特权

评论回复
24
東南博士|  楼主 | 2021-6-2 08:50 | 只看该作者
void MyProject031_init(void)
{
    //SYS->GPA_MFPH = 0x00000000UL;
    //SYS->GPA_MFPL = 0x00000000UL;
    //SYS->GPB_MFPH = 0x00000000UL;
    //SYS->GPB_MFPL = 0x00000000UL;
    //SYS->GPC_MFPL = 0x00000088UL;
    //SYS->GPF_MFPH = 0x00000000UL;
    //SYS->GPF_MFPL = 0x000000EEUL;

    MyProject031_init_ice();
    MyProject031_init_uart2();

    return;
}

void MyProject031_deinit(void)
{
    MyProject031_deinit_ice();
    MyProject031_deinit_uart2();

    return;
}

分配好的使能与禁止的 Function

使用特权

评论回复
25
東南博士|  楼主 | 2021-6-2 08:51 | 只看该作者
使用keil的几个关键配置:
1、经过上面的改写之后,可以使用NULINK连接目标芯片;
2、进行下载的设置:如下所示

使用特权

评论回复
26
東南博士|  楼主 | 2021-6-2 08:52 | 只看该作者

使用特权

评论回复
27
東南博士|  楼主 | 2021-6-2 08:52 | 只看该作者


找到目标芯片类型

使用特权

评论回复
28
東南博士|  楼主 | 2021-6-2 08:59 | 只看该作者


ISP工程里面选择LDROM;

使用特权

评论回复
29
東南博士|  楼主 | 2021-6-2 09:00 | 只看该作者


这里 booting 启动 选择这里

LDROM

使用特权

评论回复
30
東南博士|  楼主 | 2021-6-2 09:02 | 只看该作者
使用ICE软件的选择与keil一样

使用特权

评论回复
31
東南博士|  楼主 | 2021-6-2 09:04 | 只看该作者
基本操作步骤:

先烧写LDROM,启动也必须选择LDROM;

然后可以使用ICE软件或者ISP软件烧写APPROM

或者使用ICE软件一次性烧写LDROM与APPROM,并且必须设置为启动LDROM

使用特权

评论回复
32
東南博士|  楼主 | 2021-6-2 09:06 | 只看该作者
如何使用与其他拓展:

1、打开ISP软件,选择UART;选择PORT 端口;
2、点击连接;

3、对目标重新上电,可以即可以实现对目标芯片的连接;

使用特权

评论回复
33
東南博士|  楼主 | 2021-6-2 09:09 | 只看该作者
1、如果使用ISP软件,不进行断电操作,需要对硬件电路配合串口的使能进行控制;

2、使用特定IO口进行状态跳转;

3、使用flash特殊区域来写一个_ISP与APP的跳转;

4、更新完成后,可以对flash区域来进行标志位复位;

5、这样就可以实现了不拆机,使用对外接口来进行APP的更新了;

使用特权

评论回复
34
東南博士|  楼主 | 2021-6-2 09:13 | 只看该作者
以上为个人的一点心得体会,如果有不对之处,请予以指点。共同学习。

使用特权

评论回复
35
庆余年2020| | 2021-6-2 09:14 | 只看该作者
多谢分享!

学习学习!

使用特权

评论回复
36
我们荡起双桨| | 2021-6-2 09:41 | 只看该作者
请问一下,那个IIC的,是不是理论上用IO口模拟来进行读写实现IIC也可以?

这样岂不是任何一个IO口都可以进行程序的烧录了?

包括SPI是不是也是这样的?

使用特权

评论回复
37
我们荡起双桨| | 2021-6-2 09:53 | 只看该作者
很详细 学到了

使用特权

评论回复
38
東南博士|  楼主 | 2021-6-2 09:55 | 只看该作者
关于ISP包里面的RS485的解读:

这个和UART基本一样,就不新开帖子进行解读了;

使用特权

评论回复
39
東南博士|  楼主 | 2021-6-2 09:56 | 只看该作者
在main函数里面定义了 RS485 TX RX 的切换:



使用特权

评论回复
40
東南博士|  楼主 | 2021-6-2 09:59 | 只看该作者


初始化后,将UART 配置为RX 接收模式;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则