当前位置: 首页 > news >正文

动态ip网站如何备案网站优化是什么

动态ip网站如何备案,网站优化是什么,工作一般做网站视频的工作叫做什么,青岛专业做网站的公司有哪些【TI C2000】F28002x的系统延时、GPIO配置及SCI(UART)串口发送、接收 文章目录 系统延时GPIO配置GPIO输出SCI配置SCI发送、接收测试附录:F28002x开发板上手、环境配置、烧录及TMS320F280025C模板工程建立F28002x叙述烧录SDK库文件说明工程建…

【TI C2000】F28002x的系统延时、GPIO配置及SCI(UART)串口发送、接收

文章目录

  • 系统延时
  • GPIO配置
  • GPIO输出
  • SCI配置
  • SCI发送、接收
  • 测试
  • 附录:F28002x开发板上手、环境配置、烧录及TMS320F280025C模板工程建立
    • F28002x叙述
    • 烧录
    • SDK库文件说明
    • 工程建立
      • 更方便的路径导入
    • 调试

系统延时

在device.h中 有系统延时函数
该函数为微妙级延时:

#define DEVICE_DELAY_US(x) SysCtl_delay(((((long double)(x)) / (1000000.0L /  \(long double)DEVICE_SYSCLK_FREQ)) - 9.0L) / 5.0L)

所以可以包装一层毫秒延时:

void delay_ms(uint32_t ms)
{while(ms--){DEVICE_DELAY_US(1000);}
}

GPIO配置

C2000的GPIO库与常见的不同
取消了Pinmux设定 取而代之的是Pin Config
在使用GPIO时 需要用GPIO_setPinConfig函数进行设置
传参位于pin_map.h 该头文件只在配置函数中有效
如:

#define GPIO_31_GPIO31                  0x00081E00U
#define GPIO_31_CANA_TX                 0x00081E01U
#define GPIO_31_SPIB_SOMI               0x00081E03U
#define GPIO_31_OUTPUTXBAR8             0x00081E05U
#define GPIO_31_EQEP1_INDEX             0x00081E06U
#define GPIO_31_FSIRXA_D1               0x00081E09U
#define GPIO_31_EPWM1_B                 0x00081E0BU
#define GPIO_31_HIC_D10                 0x00081E0EU

其实就是取代了Pinmux功能

另外还要使用以下函数对其进行方向、功能、时钟配置

GPIO_setDirectionMode
GPIO_setPadConfig
GPIO_setQualificationMode

第一个传参为GPIO序号 第二个为选择的功能

如果是复用功能的话 上面这两种传参都会在device.h中被定义好
如:

//
// SCI for USB-to-UART adapter on FTDI chip
//
#define DEVICE_GPIO_PIN_SCIRXDA     28U             // GPIO number for SCI RX
#define DEVICE_GPIO_PIN_SCITXDA     29U             // GPIO number for SCI TX
#define DEVICE_GPIO_CFG_SCIRXDA     GPIO_28_SCIA_RX // "pinConfig" for SCI RX
#define DEVICE_GPIO_CFG_SCITXDA     GPIO_29_SCIA_TX // "pinConfig" for SCI TX

另外 设置模拟模式则使用GPIO_setAnalogMode 设置采样周期则使用GPIO_setQualificationPeriod 设置中断则使用GPIO_setInterruptPin
后三个函数根据需求设置 前面四个函数配置为基本配置

方向配置就是输入/输出(如果配复用模式 如UART的TX功能 那么也要配置这个为输出)

typedef enum
{GPIO_DIR_MODE_IN,                   //!< Pin is a GPIO inputGPIO_DIR_MODE_OUT                   //!< Pin is a GPIO output
} GPIO_Direction;

对于功能配置(推挽、开漏、上拉等等) 有以下:

#ifndef DOXYGEN_PDF_IGNORE
//*****************************************************************************
//
// Values that can be passed to GPIO_setPadConfig() as the pinType parameter
// and returned by GPIO_getPadConfig().
//
//*****************************************************************************
#define GPIO_PIN_TYPE_STD       0x0000U //!< Push-pull output or floating input
#define GPIO_PIN_TYPE_PULLUP    0x0001U //!< Pull-up enable for input
#define GPIO_PIN_TYPE_INVERT    0x0002U //!< Invert polarity on input
#define GPIO_PIN_TYPE_OD        0x0004U //!< Open-drain on output
#endif

对于时钟配置 有以下四种:

typedef enum
{GPIO_QUAL_SYNC,                     //!< Synchronization to SYSCLKGPIO_QUAL_3SAMPLE,                  //!< Qualified with 3 samplesGPIO_QUAL_6SAMPLE,                  //!< Qualified with 6 samplesGPIO_QUAL_ASYNC                     //!< No synchronization
} GPIO_QualificationMode;

一般而言 时钟就配置为GPIO_QUAL_ASYNC 即可 也就是异步
若配置为GPIO_QUAL_SYNC则会根据系统时钟对齐

GPIO输出

若配置为GPIO输出的话 则用以下函数 如GPIO31和34 对应开发板上的LED4 LED5

    //GPIO 31 34 OutputGPIO_setPinConfig(GPIO_31_GPIO31);GPIO_setDirectionMode(31, GPIO_DIR_MODE_OUT);GPIO_setPadConfig(31, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(31, GPIO_QUAL_ASYNC);GPIO_setPinConfig(GPIO_34_GPIO34);GPIO_setDirectionMode(34, GPIO_DIR_MODE_OUT);GPIO_setPadConfig(34, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(34, GPIO_QUAL_ASYNC);

同样 使用GPIO_writePinGPIO_setPortPins即可写入输出值 后者是一整个Port的输出函数
如:

    GPIO_writePin(31,0);GPIO_writePin(34,1);

其中 Port只有三种:

typedef enum
{GPIO_PORT_A = 0,                    //!< GPIO port AGPIO_PORT_B = 1,                    //!< GPIO port BGPIO_PORT_H = 7                     //!< GPIO port H
} GPIO_Port;

使用GPIO_togglePin则切换电平高低

	    GPIO_togglePin(31);GPIO_togglePin(34);

SCI配置

SCI与UART基本一致 但是多了一个Address模式
在这里插入图片描述

也就是多了一位地址位 该模式可以在SCI_setAddrMultiProcessorMode中开启
若不开启 就是普通模式
在这里插入图片描述
在这里插入图片描述
在使用时 可以直接当作UART来使用

在开发板上 默认使用的UART为SCIA的TX、RX 对应GPIO28、29
在这里插入图片描述
配置SCI前 需要先配置GPIO基本配置

    //// GPIO28 is the SCI Rx pin.//GPIO_setPinConfig(DEVICE_GPIO_CFG_SCIRXDA);GPIO_setDirectionMode(DEVICE_GPIO_PIN_SCIRXDA, GPIO_DIR_MODE_IN);GPIO_setPadConfig(DEVICE_GPIO_PIN_SCIRXDA, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(DEVICE_GPIO_PIN_SCIRXDA, GPIO_QUAL_ASYNC);//// GPIO29 is the SCI Tx pin.//GPIO_setPinConfig(DEVICE_GPIO_CFG_SCITXDA);GPIO_setDirectionMode(DEVICE_GPIO_PIN_SCITXDA, GPIO_DIR_MODE_OUT);GPIO_setPadConfig(DEVICE_GPIO_PIN_SCITXDA, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(DEVICE_GPIO_PIN_SCITXDA, GPIO_QUAL_ASYNC);

这里就是把TX配置为输出、RX配置为输入 其他默认

外设配置很简单调用SCI_setConfig函数配置波特率、时钟、数据即可
然后通过SCI_enableModule打开相应模式
再将通道复位清空即可

    SCI_setConfig(SCIA_BASE, DEVICE_LSPCLK_FREQ, 115200, (SCI_CONFIG_WLEN_8 |SCI_CONFIG_STOP_ONE |SCI_CONFIG_PAR_NONE));SCI_enableModule(SCIA_BASE);SCI_enableTxModule(SCIA_BASE);SCI_enableRxModule(SCIA_BASE);SCI_resetChannels(SCIA_BASE);SCI_performSoftwareReset(SCIA_BASE);

SCI发送、接收

发送有好几种方式 最常用的是SCI_writeCharArray

extern void
SCI_writeCharArray(uint32_t base, const uint16_t * const array,uint16_t length);

该方式为阻塞发送
对应阻塞接收为:

extern void
SCI_writeCharArray(uint32_t base, const uint16_t * const array,uint16_t length);

测试

代码如下:

/*** main.c*/
#include "device.h"
#include "driverlib.h"#include <stdint.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include <stdio.h>
#include <math.h>//
// Globals
////
// Send data for SCI-A
//
uint16_t TX_Buf[2]={0xAA,0xBB};//
// Received data for SCI-A
//
uint16_t RX_Buf[2]={0xFF,0xFF};
//
// Function Prototypes
//
void Init_GPIO(void)
{//// GPIO28 is the SCI Rx pin.//GPIO_setPinConfig(DEVICE_GPIO_CFG_SCIRXDA);GPIO_setDirectionMode(DEVICE_GPIO_PIN_SCIRXDA, GPIO_DIR_MODE_IN);GPIO_setPadConfig(DEVICE_GPIO_PIN_SCIRXDA, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(DEVICE_GPIO_PIN_SCIRXDA, GPIO_QUAL_ASYNC);//// GPIO29 is the SCI Tx pin.//GPIO_setPinConfig(DEVICE_GPIO_CFG_SCITXDA);GPIO_setDirectionMode(DEVICE_GPIO_PIN_SCITXDA, GPIO_DIR_MODE_OUT);GPIO_setPadConfig(DEVICE_GPIO_PIN_SCITXDA, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(DEVICE_GPIO_PIN_SCITXDA, GPIO_QUAL_ASYNC);//GPIO 31 34 OutputGPIO_setPinConfig(GPIO_31_GPIO31);GPIO_setDirectionMode(31, GPIO_DIR_MODE_OUT);GPIO_setPadConfig(31, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(31, GPIO_QUAL_ASYNC);GPIO_setPinConfig(GPIO_34_GPIO34);GPIO_setDirectionMode(34, GPIO_DIR_MODE_OUT);GPIO_setPadConfig(34, GPIO_PIN_TYPE_STD);GPIO_setQualificationMode(34, GPIO_QUAL_ASYNC);GPIO_writePin(31,0);GPIO_writePin(34,1);
}void Init_SCI(void)
{SCI_setConfig(SCIA_BASE, DEVICE_LSPCLK_FREQ, 115200, (SCI_CONFIG_WLEN_8 |SCI_CONFIG_STOP_ONE |SCI_CONFIG_PAR_NONE));SCI_enableModule(SCIA_BASE);SCI_enableTxModule(SCIA_BASE);SCI_enableRxModule(SCIA_BASE);SCI_resetChannels(SCIA_BASE);SCI_performSoftwareReset(SCIA_BASE);
}void delay_ms(uint32_t ms)
{while(ms--){DEVICE_DELAY_US(1000);}
}int main(void)
{//// Initializes system control, device clock, and peripherals//Device_init();Device_initGPIO();Init_GPIO();Init_SCI();//// Initializes PIE and clear PIE registers. Disables CPU interrupts.// and clear all CPU interrupt flags.//Interrupt_initModule();//// Initialize the PIE vector table with pointers to the shell interrupt// Service Routines (ISR).//Interrupt_initVectorTable();//// Enable Global Interrupt (INTM) and realtime interrupt (DBGM)//EINT;ERTM;delay_ms(10);SCI_writeCharArray(SCIA_BASE, TX_Buf, 2);while (1){delay_ms(500);GPIO_togglePin(31);GPIO_togglePin(34);SCI_readCharArray(SCIA_BASE, RX_Buf, 1);SCI_writeCharArray(SCIA_BASE, RX_Buf, 1);}}

配置好后运行
可以观测到串口回环以及每次的LED反转
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

附录:F28002x开发板上手、环境配置、烧录及TMS320F280025C模板工程建立

F28002x叙述

作为TI C28x架构的DSP 其属于C2000系列
其开发板套件如 F28002x LaunchPad 电路板自带XDS110 极大的方便了开发
在这里插入图片描述
对于其环境开发外 除安装IDE CCS外 还应安装SDK C2000WARE、UniFlash等
在这里插入图片描述
其中 红框为必要安装 蓝框为可选安装
Motor Control SDK (C2000WARE-MOTORCONTROL-SDK) 适用于各种三相电机控制应用,例如工业驱动器和伺服拓扑结构。Digital Power SDK (C2000WARE-DIGITALPOWER-SDK) 适用于开发针对各种交流/直流、直流/直流和直流/交流电源应用的数字电源系统。

F28002x连接PC后 需要安装C2000WARE(或其他TI自带XDS110驱动的SDK包)才能有XDS110驱动
在这里插入图片描述
成功安装后即可正常使用

烧录

通过UniFlash即可进行擦除和烧录
插上即可自动识别 通过XDS110进行操作
在这里插入图片描述
擦除:
在这里插入图片描述
在这里插入图片描述

烧录时 可选择bin、out等文件 这极大的方便了开发
.out文件可以由CCS直接编译而来 .bin文件则通过.out转换而来
(TI的MMWave系列芯片就不能直接烧录.out文件)
在这里插入图片描述
在这里插入图片描述
烧录时 建议先擦除再烧录
烧录的地址、位置 由工程编译后的.out文件决定

SDK库文件说明

在建立工程前 确保安装了C2000WARE
在C2000的SDK中 主要要用到这两个文件夹:
在这里插入图片描述
driverlib中存储了必要的头文件、lib文件(这里的文件可以不用拷贝)
在这里插入图片描述
其中 CCS下面的Debug和Release文件夹 则有两个不同的lib 分别在不同的情况下使用

device_support中则存放了cmd文件和SDK的头文件
在这里插入图片描述
分别位于common的cmd中和include中
其中 driverlib.hdevice.hdevice.c建议拷贝到工程中使用 即为库函数开发包(上面的driverlib也可以拷 但是没必要)
cmd文件在建立工程时会自动生成 但也可以根据需要拷贝其他文件或进行修改
这里常用的就是RAM_Link和Flash_Link
在这里插入图片描述

另外 还应拷贝f28002x_codestartbranch.asm文件 即start文件
Flash和RAM的区别就是烧录和运行的地址不同 如果要发布 则用Flash 如果只是调试 就用RAM
在这里插入图片描述
这两个cmd文件不能同时使用 可以根据工程配置Debug、Release来进行选择
在这里插入图片描述

如果要额外使用寄存器开发的话:
device_support下的headers文件夹则在寄存器开发中被使用
如果想通过寄存器(类似于标准库)的方式开发 而非TI推荐的库函数方式开发
则需要另外导入headers下的cmd和include
同样可以根据需要替换或修改cmd文件
在这里插入图片描述
如果要使用 则下面的头文件和源文件都要拷贝
在这里插入图片描述

工程建立

通过CCS进行工程建立
工程中额外加入device.h、device.c、driverlib.h和启动asm文件:
在这里插入图片描述
建立main.c并写入以下代码:

/*** main.c*/
#include "device.h"
#include "driverlib.h"#include <stdint.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include <stdio.h>
#include <math.h>int main(void)
{//// Initializes system control, device clock, and peripherals//Device_init();Device_initGPIO();//// Initializes PIE and clear PIE registers. Disables CPU interrupts.// and clear all CPU interrupt flags.//Interrupt_initModule();//// Initialize the PIE vector table with pointers to the shell interrupt// Service Routines (ISR).//Interrupt_initVectorTable();//// Enable Global Interrupt (INTM) and realtime interrupt (DBGM)//EINT;ERTM;DEVICE_DELAY_US(1000);while (1){}}

cmd文件可以使用生成自带的文件 也可以在SDK中拷贝
在这里插入图片描述
其中 工程属性中 要选择小端格式ELF
在这里插入图片描述
并选择rts2800_fpu32_eabi.lib支持库文件
在头文件中 导入SDK包的位置
在这里插入图片描述

C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f28002x\driverlib\inc
C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f28002x\driverlib
${workspace_loc:/${ProjName}/Device}
${workspace_loc:/${ProjName}}
${PROJECT_ROOT}
${CG_TOOL_ROOT}/include

并在C2000 Link中导入lib文件和目录
在这里插入图片描述

rts2800_fpu32_eabi.lib
C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f28002x\driverlib\ccs\Debug\driverlib.lib${CG_TOOL_ROOT}/lib
C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f28002x\driverlib\ccs\Debug
${CG_TOOL_ROOT}/include

如果要为了方便 可以在这里添加变量
在这里插入图片描述
建立好后编译即可
在这里插入图片描述

更方便的路径导入

添加C2000Ware包后 更容易导入库
在这里插入图片描述

${COM_TI_C2000WARE_INCLUDE_PATH}
${COM_TI_C2000WARE_INSTALL_DIR}
${COM_TI_C2000WARE_INSTALL_DIR}/driverlib/f28002x/driverlib/inc
${COM_TI_C2000WARE_INSTALL_DIR}/driverlib/f28002x/driverlib
${workspace_loc:/${ProjName}/Device}
${workspace_loc:/${ProjName}}
${PROJECT_ROOT}
${CG_TOOL_ROOT}/include${COM_TI_C2000WARE_INSTALL_DIR}/driverlib/f28002x/driverlib/ccs/Debug/driverlib.lib${COM_TI_C2000WARE_INSTALL_DIR}/driverlib/f28002x/driverlib/ccs/Debug

调试

通过Load Program和XDS110下载后即可调试
在这里插入图片描述
在这里插入图片描述


文章转载自:
http://dinncotayra.stkw.cn
http://dinncoexclusive.stkw.cn
http://dinncoorchestic.stkw.cn
http://dinncofootstock.stkw.cn
http://dinncokaifeng.stkw.cn
http://dinncofibroin.stkw.cn
http://dinncorotunda.stkw.cn
http://dinncoveins.stkw.cn
http://dinncobalti.stkw.cn
http://dinncoradioluminescence.stkw.cn
http://dinncosneakingly.stkw.cn
http://dinncomonospermal.stkw.cn
http://dinnconafud.stkw.cn
http://dinncolocutory.stkw.cn
http://dinncoincline.stkw.cn
http://dinncoflack.stkw.cn
http://dinncodemilitarise.stkw.cn
http://dinncoaurae.stkw.cn
http://dinncodactylology.stkw.cn
http://dinncoclubroom.stkw.cn
http://dinncoentia.stkw.cn
http://dinncoautomaker.stkw.cn
http://dinncomaltreat.stkw.cn
http://dinncoundeclared.stkw.cn
http://dinncoproximate.stkw.cn
http://dinncoungulate.stkw.cn
http://dinncotheodolite.stkw.cn
http://dinncosteeple.stkw.cn
http://dinncophospholipin.stkw.cn
http://dinncodivorcement.stkw.cn
http://dinncofenland.stkw.cn
http://dinncogyroscope.stkw.cn
http://dinncononunion.stkw.cn
http://dinncopasquale.stkw.cn
http://dinncoprogressionist.stkw.cn
http://dinncocardinalate.stkw.cn
http://dinncoamidohydrolase.stkw.cn
http://dinncoiconoclastic.stkw.cn
http://dinncotransmutable.stkw.cn
http://dinncogel.stkw.cn
http://dinncoshah.stkw.cn
http://dinncofulgurant.stkw.cn
http://dinncothroe.stkw.cn
http://dinncohater.stkw.cn
http://dinncodystrophia.stkw.cn
http://dinncododecahedral.stkw.cn
http://dinncotracheated.stkw.cn
http://dinncofornication.stkw.cn
http://dinncoanchovy.stkw.cn
http://dinncoindiscretion.stkw.cn
http://dinncomelodeon.stkw.cn
http://dinncotrichroic.stkw.cn
http://dinncoablate.stkw.cn
http://dinncotafferel.stkw.cn
http://dinncosoliflucted.stkw.cn
http://dinncozarathustra.stkw.cn
http://dinncoarched.stkw.cn
http://dinncobibliophil.stkw.cn
http://dinncoundulate.stkw.cn
http://dinncoritenuto.stkw.cn
http://dinncopediatrist.stkw.cn
http://dinncogridding.stkw.cn
http://dinncoscandalmonger.stkw.cn
http://dinncoadopter.stkw.cn
http://dinncopyrrha.stkw.cn
http://dinncogeognostical.stkw.cn
http://dinncobandleader.stkw.cn
http://dinncostopple.stkw.cn
http://dinncozonation.stkw.cn
http://dinncoeveryhow.stkw.cn
http://dinncomicrosystem.stkw.cn
http://dinncocherup.stkw.cn
http://dinncocloudworld.stkw.cn
http://dinncorhathymia.stkw.cn
http://dinncocongolese.stkw.cn
http://dinncobacchic.stkw.cn
http://dinncophilogyny.stkw.cn
http://dinncostardust.stkw.cn
http://dinncotopographic.stkw.cn
http://dinncothibetan.stkw.cn
http://dinncoaciduric.stkw.cn
http://dinncobuhr.stkw.cn
http://dinncobasically.stkw.cn
http://dinncoatomix.stkw.cn
http://dinncoaggress.stkw.cn
http://dinncohorsefoot.stkw.cn
http://dinncosapphiric.stkw.cn
http://dinncoopacity.stkw.cn
http://dinncolivestock.stkw.cn
http://dinncoglobality.stkw.cn
http://dinncomuliebral.stkw.cn
http://dinncomonotropy.stkw.cn
http://dinncofurfuraldehyde.stkw.cn
http://dinncosourdine.stkw.cn
http://dinncoamaranthine.stkw.cn
http://dinncooocyte.stkw.cn
http://dinncosemicircumference.stkw.cn
http://dinncosware.stkw.cn
http://dinncoindividually.stkw.cn
http://dinncoresoil.stkw.cn
http://www.dinnco.com/news/119583.html

相关文章:

  • 如何让网站不被收录方象科技服务案例
  • 公司名称大全及最新正规网站优化哪个公司好
  • 自己做的网站怎么让别人访问百度站长收录
  • 成都响应式网站开发怎么进入百度推广账户
  • 网站建设模块培训ppt网店代运营一年的费用是多少
  • 政府门户网站建设经验南京百度推广优化
  • 政府网站建设 总结网络营销的12种手段
  • 适合ps做图的素材网站域名停靠网页app推广大全
  • 济南网站制作价格外链推广软件
  • 制作网站品牌公司简介百度一下你就知道下载安装
  • 目前最好的推广平台网站seo在线优化
  • c 做网站起什么作用网站建设山东聚搜网络
  • vs做网站如何输出windows优化大师会员兑换码
  • 网站flash banner小程序引流推广平台
  • 长沙做网站比较好的公司seo网站推广主要目的不包括
  • 公司建设的网站属于无形资产吗长春网站开发
  • 变更网站怎么做seo作弊
  • www.北京网站建设seo查询百科
  • 公司 备案 网站名称网页制作教程步骤
  • 怎么做app和网站购物车百度最贵关键词排名
  • 私人免费网站怎么下载seo推广专员招聘
  • 物联网的核心和基础是什么武汉seo收费
  • 减肥网站源码seo搜索引擎优化期末及答案
  • 做网站niche微博营销策略
  • 做电器推广的网站南京百度
  • 个人网站一年多少钱百度引流推广怎么收费
  • 优购物官方网站订单查询百度网站提交入口
  • 网页设计网站架构网盘网页版
  • 网站开发的目的意义特色创新百度seo关键词优化市场
  • 做哪种网站浏览量比较高视频seo优化教程