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

网站导航面包屑哪里可以接做ppt的网站

网站导航面包屑,哪里可以接做ppt的网站,the7.3 wordpress,公司响应式网站建设报价【TI C2000】F28002x的系统延时、GPIO配置及SCI#xff08;UART#xff09;串口发送、接收 文章目录 系统延时GPIO配置GPIO输出SCI配置SCI发送、接收测试附录#xff1a;F28002x开发板上手、环境配置、烧录及TMS320F280025C模板工程建立F28002x叙述烧录SDK库文件说明工程建…【TI C2000】F28002x的系统延时、GPIO配置及SCIUART串口发送、接收 文章目录 系统延时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_writePin或GPIO_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.h、device.h、device.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.hint 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://www.ho-use.cn/article/10820281.html

相关文章:

  • 技术支持东莞网站建设小程序模板免费网站
  • 营销网站模版官方网站下载zoom
  • 做网站一般几个人完成宁波网页设计的技术要求
  • 阿里云服务器做网站安全吗云南建设网站首页
  • 网站定位有哪些杭州市在建工程项目
  • 邢台做网站优化价格网站的优点有哪些
  • 网站seo哪家好网站建设yingkagou
  • 阿里云自助建站和华为云自助建站工商局网站怎么做身份确认
  • 恩施网站建设什么程序做网站
  • 做暖dnf动态ufo网站wordpress编写博客时如何写出代码
  • 电商网站开发重难点营销型网站建站
  • 长沙品牌网站建设实力强徐州微网站开发
  • 陇西学做网站廊坊网站搭建
  • 网站开发属于哪个部门关键词优化一般收费价格
  • 自己网站做问卷调查asp.net做的小网站
  • 新手做网站最简单流程抚州南城网站建设
  • 百度网站降级的原因淘宝网站开发框架
  • 轻量应用服务器可以做网站吗皮肤科在线医生免费咨询
  • 汉中公司做网站微网站建设是什么
  • 接网站制作网站建设与推广的策划方案
  • 个人如何申请网站合肥网站排名推广
  • 岳阳市规划局建设工程公示网站设计机构
  • 吉林市网站制作哪家好免费网站源码建站系统
  • 西宁网站公司张家界网站制作
  • 建设中标查询网站中企动力做网站 知乎
  • 机械网站开发方案苏州网站建设教程
  • 郑州网站推广排名wordpress编辑写文章失败
  • 网站建设项目实践报告书网络seo优化平台
  • cookie做网站访问量wordpress自动抓取
  • 免费货源在线网站跨境电商平台开发