打印
[开发工具]

STM32TrustedPackageCreator这个官方工具怎么使用啊?具体用来干...

[复制链接]
4088|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cornrn|  楼主 | 2017-12-27 09:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
STM32TrustedPackageCreator这个官方工具怎么使用啊?具体用来干嘛的啊?

QQ截图20171227093850.png (184.44 KB )

STM32TrustedPackageCreator这个官方工具怎么使用啊?具体用来干嘛的啊?

STM32TrustedPackageCreator这个官方工具怎么使用啊?具体用来干嘛的啊?
沙发
cornrn|  楼主 | 2017-12-27 09:42 | 只看该作者
是在安装 STM32CUBE PROGRAMMER 时候附带安装的。下面这个CUBE PROGRAMMER 还是挺好的可以JTAG SWD USB 串口 据说以后I2C CAN 什么都可以下载固件真的吗?

QQ截图20171227093857.png (505.03 KB )

QQ截图20171227093857.png

使用特权

评论回复
板凳
cornrn|  楼主 | 2017-12-28 10:07 | 只看该作者
No one knows ?

使用特权

评论回复
地板
香水城| | 2017-12-28 10:33 | 只看该作者
这个工具才出来,那个STM32TrustedPackageCreator是用来配置代码加密应用的工具。
你安装后有附加的用户手册你可以看看。

这个软件工具把之前的几个分散软件工具合在一起了,通过STLINK/uart/usb接口编程都可以用它。

使用特权

评论回复
评论
cornrn 2017-12-28 10:46 回复TA
是的,我就是没看到STM32TrustedPackageCreator HELP里面有什么手册看的,没找到,具体还请香版主贴出来吧,好多人还不知道这工具,那个工具真不错,大... 
5
cornrn|  楼主 | 2017-12-29 11:23 | 只看该作者
本帖最后由 cornrn 于 2017-12-29 11:24 编辑

TFT4137液晶模块 驱动芯片为S6D0139 (片内172800字节GRAM,即240*320*18/8),
/****************************************************************************************
* 文件名:LCDDRIVE.H
* 功能:TFT4137液晶模块驱

动。(头文件)
*       驱动芯片为S6D0139 (片内172800字节GRAM,即240*320*18/8),
*
*  8位接口总线
*         
*  操作说明(写IR + CR/WDR [ + WDR...] ):
*  R/W            RS             操作
*  0              0              写IR(索引,即选择CR)
*  1              0              读芯片状态
*  0              1              写命令(CR)/数据(WDR)
*  1              1              读数据(RDR)
****************************************************************************************/
#ifndef  __LCDDRIVE_H_
#define  __LCDDRIVE_H_

#include "app.h"

// 定义颜色数据类型(可以是数据结构)
#define  TCOLOR                                uint16_t
   
// 定义LCM像素数宏                 
#define  LCM_XMAX                240        /* 定义液晶x轴的点数 */
#define  LCM_YMAX                320                /* 定义液晶y轴的点数 */

// 设置颜色宏定义
#define   BLACK                0x0000      /* 黑色:    0,   0,   0 */
#define   NAVY                0x000F      /* 深蓝色:  0,   0, 128 */
#define   DGREEN        0x03E0                        /* 深绿色:  0, 128,   0 */
#define   DCYAN                0x03EF                        /* 深青色:  0, 128, 128 */
#define   MAROON        0x7800                        /* 深红色:128,   0,   0 */
#define   PURPLE        0x780F                        /* 紫色:  128,   0, 128 */
#define   OLIVE                0x7BE0             /* 橄榄绿:128, 128,   0 */
#define   LGRAY                0xC618            /* 灰白色:192, 192, 192 */
#define   DGRAY                0x7BEF                        /* 深灰色:128, 128, 128 */
#define   BLUE                0x001F                        /* 蓝色:    0,   0, 255 */
#define   GREEN                0x07E0                        /* 绿色:    0, 255,   0 */
#define   CYAN          0x07FF                         /* 青色:    0, 255, 255 */
#define   RED                        0xF800                        /* 红色:  255,   0,   0 */
#define   MAGENTA        0xF81F                        /* 品红:  255,   0, 255 */
#define   YELLOW        0xFFE0                        /* 黄色:  255, 255, 0   */
#define   WHITE                0xFFFF      /* 白色:  255, 255, 255 */

// 定义清屏色
#define  GUI_CCOLOR         MAROON




// 定义S6D0139的部份寄存器
#define  SET_ADDR_X                            0x0020                /* GRAM地址设置(R21H,R20H) */
#define  SET_ADDR_Y                            0x0021
#define  WR_RD_DATA                            0x0022                /* 写/读GRAM数据 (R22H) */
#define  SET_WINDOW_SX_EX                0x0046                /* window地址设置--x0,x1 (R46H) */
#define  SET_WINDOW_SY            0x0048                /* window地址设置--y0 (R48H) */
#define  SET_WINDOW_EY            0x0047                /* window地址设置--y1 (R47H) */


// 初始化数据结构定义
#define     DATA_END                                0xFF00

// 定义初始化数据的结构
typedef  struct
{  
        uint16_t  com;                                // 命令字
  uint16_t  dat;                                // 数据
  uint16_t  dly;                                // 命令延时控制(如50)
}STCOM_INI;




void  TFTLCD_Init(void);
uint8_t  TFTLCD_SetPixelIndex(uint16_t x, uint16_t y, TCOLOR color);
uint16_t  TFTLCD_GetPixelIndex(uint16_t x, uint16_t y);
void TFTLCD_HLine(uint16_t x0, uint16_t y0, uint16_t x1, TCOLOR color) ;
void  DelaymS(uint32_t no);


#endif
/****************************************************************************************
* 文件名:LCDDRIVE.C
* 功能:TFT4137液晶模块驱动。驱动芯片为S6D0139 (片内172800字节GRAM,即240*320*18/8),
*                                 
*  RGB对应值(16位数据,分First,Second两次传输,Fd7--Fd0,Sd7--Sd0):
*  Fd7--Fd3                          R色
*  Fd2--Fd0,Sd7--Sd5    G色
*  Sd4--Sd0                          B色
*  写操作时地址计数器会自动增长,而读操作则不会自动增长。读操作时,读第2个数
*  据才是有效的数据
****************************************************************************************/
#include "LCDDriver.h"

#define LCD_CS_PIN  GPIO_PIN_8
#define LCD_WE_PIN  GPIO_PIN_9
#define LCD_A1_PIN  GPIO_PIN_10
#define LCD_OE_PIN  GPIO_PIN_11


/*******************************************************
* 名称: TFTLCD_SendCmd
* 功能: 向TFT液晶模块发送命令字。
* 入口参数: com   命令字(uint16)
* 出口参数: 无
*******************************************************/
void  TFTLCD_SendCmd(uint16_t cmd)
{   
        uint8_t  data;
        GPIOA->MODER |= 0x5555;
        data = (cmd >> 8);
        GPIOA->ODR = (GPIOA->ODR&0xF000)|data|0xA00;
        data = cmd & 0x00FF;
        GPIOA->ODR = (GPIOA->ODR&0xFD00)|data;
        GPIOA->ODR = (GPIOA->ODR|0x0F00);
}


/*******************************************************
* 名称: TFTLCD_SendDat
* 功能: 向TFT液晶模块发送数据。
* 入口参数: dat   待发送的数据(uint16)
* 出口参数: 无
*******************************************************/
void  TFTLCD_SendDat(uint16_t dat)
{  
        uint8_t  data;       
        GPIOA->MODER |= 0x5555;
        data = (dat >> 8);
        GPIOA->ODR = (GPIOA->ODR&0xF000)|data|0xC00;
        GPIOA->BSRR = (uint32_t)LCD_WE_PIN;
        data = dat & 0x00FF;
        GPIOA->ODR = (GPIOA->ODR&0xFD00)|data;
        GPIOA->ODR = (GPIOA->ODR|0x0F00);
}
/*******************************************************
* 名称: TFTLCD_RcvDat
* 功能: 读取TFT液晶模块的数据。
* 入口参数: 无
* 出口参数: 返回值即是读出的数据
*******************************************************/
uint16_t  TFTLCD_RcvDat(void)
{  
        uint16_t  ret, bak;

        GPIOA->MODER &= 0xFFFF0000;
        GPIOA->ODR = (GPIOA->ODR&0xF000)|0x600;
        bak = (GPIOA->IDR&0xFF);
        ret = (bak << 8);
        GPIOA->ODR = (GPIOA->ODR&0xF000)|0x900;
        GPIOA->ODR = (GPIOA->ODR&0xF000)|0x600;
        bak = (GPIOA->IDR&0xFF);
        ret = ret | bak;
        GPIOA->ODR = (GPIOA->ODR|0x0F00);
  return(ret);
}

/*******************************************************
* 名称: TFTLCD_SetAddr
* 功能: 设置数据地址指针(坐标值)。
* 入口参数: x                横坐标的值 (0-239)
*           y   纵坐标的值 (0-319)
* 出口参数: 设置正确返回TRUE,参数超出范围返回FALSE
*******************************************************/
uint8_t  TFTLCD_SetAddr(uint16_t x, uint16_t y)
{  
        TFTLCD_SendCmd(SET_ADDR_X);                // 设置地址低8位
  TFTLCD_SendDat(x);
   
  TFTLCD_SendCmd(SET_ADDR_Y);                // 设置地址高9位
  TFTLCD_SendDat(y);
   
  if((x<240) && (y<320)) return(1);
     else  return(0);
}


/*******************************************************
* 名称: TFTLCD_SetWrite
* 功能: 设置数据地址指针(坐标值),并发送写数据命令。
*       接着不断的写入数据即可,GRAM地址会自动增加。
* 入口参数: x                横坐标的值 (0-239)
*           y   纵坐标的值 (0-319)
* 出口参数: 设置正确返回TRUE,参数超出范围返回FALSE
*******************************************************/
uint8_t  TFTLCD_SetWrite(uint16_t x, uint16_t y)
{  
        uint8_t  ret;

  ret = TFTLCD_SetAddr(x, y);
  TFTLCD_SendCmd(WR_RD_DATA);                // 写数据
  return(ret);
}





/*******************************************************
* 名称: DelaymS
* 功能: 软件延时(1mS,与系统时钟有关)。
* 入口参数: no   延时控制(uint32_t),值越大延时越长
* 出口参数: 无
*******************************************************/
void  DelaymS(uint32_t no)
{  
        uint32_t i;

        for(; no>0; no--)
        {  
                for(i=0; i<15000; i++);
        }
}




/*******************************************************
* 名称: TFTLCD_Reset
* 功能: 控制TFT液晶模块复位。
* 入口参数: 无
* 出口参数: 无
*******************************************************/
void  TFTLCD_Reset(void)
{      
        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET);
        DelaymS(10);
        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET);
        DelaymS(10);   
}


// 定义TFT_LCD初始化数据信息
STCOM_INI  TFT_LCD_INI[] =
{   
    {0x0000, 0x0001, 10},                // Start Oscillation
    {0x0007, 0x0000,  0},                // Display control1
    {0x0013, 0x0000,  0},                // Power control4 setting
    {0x0011, 0x2604,  0},                // Power control2 setting
    {0x0014, 0x0015,  0},                // Power control5 setting
    {0x0010, 0x3C00,  0},         // Power control1 setting
    {0x0013, 0x0040, 10},                // Power control4 setting
    {0x0013, 0x0060, 50},                // Power control4 setting
    {0x0013, 0x0070, 40},                // Power control4 setting
   
    {0x0001, 0x0127,  0},         // Driver output setting (240x320 mode, GS=0, SS=1)
    {0x0002, 0x0700,  0},         // LCD driving waveform setting
    {0x0003, 0x1030,  0},         // Entry mode setting (TRI=0, DFM=0, BGR=1, ID1:ID0 =11, AM = 0)
    {0x0007, 0x0000,  0},         // Display control1
    {0x0008, 0x0404,  0},         // Display control2
    {0x000B, 0x0200,  0},                // Frame cycle setting
    {0x000C, 0x0000,  0},                // External display interface setting
    {0x00015,0x0000,  0},          
  
    {0x0030, 0x0000,  0},   // Gamma control1
    {0x0031, 0x0606,  0},   // Gamma control2
    {0x0032, 0x0006,  0},   // Gamma control3
    {0x0033, 0x0403,  0},   // Gamma control4
    {0x0034, 0x0107,  0},   // Gamma control5
    {0x0035, 0x0101,  0},   // Gamma control6
    {0x0036, 0x0707,  0},   // Gamma control7
    {0x0037, 0x0304,  0},   // Gamma control8
    {0x0038, 0x0A00,  0},   // Gamma control9
    {0x0039, 0x0706,  0},   // Gamma control10
   
    {0x0040, 0x0000,  0},   // Gate scan position (start G1 scan)
    {0x0041, 0x0000,  0},   // Vertical scroll setting
    {0x0042, 0x013F,  0},   // Screen end position (320-1)
    {0x0043, 0x0000,  0},   // Screen start position (0)
    {0x0044, 0x0000,  0},   // 2th Screen end position
    {0x0045, 0x0000,  0},   // 2th Screen start position
    {0x0046, 0xEF00,  0},   // window addr set for x0,x1 (0, 239)
    {0x0047, 0x013F,  0},   // window addr set for y0(319)
    {0x0048, 0x0000,  0},   // window addr set for y1(0)
    {0x0007, 0x0011, 40},   // Display control1
    {0x0007, 0x0017,  0},   // Display control1

    {DATA_END,    0,  0}
};



/*******************************************************
* 名称: TFTLCD_Init()
* 功能: 初始化TFT液晶模块。
* 入口参数: 无
* 出口参数: 无
*******************************************************/
void  TFTLCD_Init(void)  
{  
        int  i;
        STCOM_INI  init_dat;
        GPIO_InitTypeDef   GPIO_InitStructure;
       
        __HAL_RCC_GPIOA_CLK_ENABLE();
  GPIO_InitStructure.Mode         = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStructure.Pull         = GPIO_NOPULL;
        GPIO_InitStructure.Speed  = GPIO_SPEED_HIGH;
        GPIO_InitStructure.Pin          = 0xFF|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_15;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);
        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_SET);
       
        TFTLCD_Reset();
        for(i=0; i<100; i++)               
        {   
                init_dat = TFT_LCD_INI[i];
                if(init_dat.com==DATA_END) break;
                TFTLCD_SendCmd(init_dat.com);
                TFTLCD_SendDat(init_dat.dat);            
                DelaymS(init_dat.dly);      
        }
}

/****************************************************************************
* 名称:TFTLCD_SetPixelIndex()
* 功能:在指定位置上画点。
* 入口参数:x                指定点所在列的位置
*           y                指定点所在行的位置
*           color        显示颜色
* 出口参数:返回值为1时表示操作成功,为0时表示操作失败。
****************************************************************************/
uint8_t  TFTLCD_SetPixelIndex(uint16_t x, uint16_t y, TCOLOR color)
{  
        /* 参数过滤 */
if(x>=LCM_XMAX) return(0);
if(y>=LCM_YMAX) return(0);

/* 刷新显示 */
TFTLCD_SetWrite(x, y);
TFTLCD_SendDat(color);

return(1);
}


/****************************************************************************
* 名称:TFTLCD_GetPixelIndex()
* 功能:读取指定位置点的颜色数据。
* 入口参数:x                指定点所在列的位置
*           y                指定点所在行的位置
* 出口参数:返回值即是读出值(RRRRRGGGGGGBBBBB)。
****************************************************************************/
uint16_t  TFTLCD_GetPixelIndex(uint16_t x, uint16_t y)
{  
        uint16_t  bak;
        /* 读取数据 */
        TFTLCD_SetAddr(x, y);                // 设置地址
        TFTLCD_SendCmd(WR_RD_DATA);
        bak = TFTLCD_RcvDat();
        bak = TFTLCD_RcvDat();      
        return bak;
}


















QQ截图20171229111850.png (424.53 KB )

QQ截图20171229111850.png

TFT4137_SCH.pdf

42.91 KB

SmartARM2200_SCH.pdf

158.2 KB

ISP1161_SCH.pdf

46.03 KB

使用特权

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

本版积分规则

187

主题

877

帖子

11

粉丝