使用CCS给TM4C123系列新建工程

准备工作:

  1. 下载CCS开发环境,这种用的版本是:Code Composer Studio Version: 8.3.0.00009 
  2. 下载TivaWare工具包:TivaWare

第一步:新建一个CCS Project

第二步:选择芯片,工程路径,点完成

第三步:打开安装好的TivaWare,复制需要的文件

  1. 路径:C:\ti\TivaWare_C_Series-2.1.4.178\inc,复制这个文件夹到你的工程文件中
  2. C:\ti\TivaWare_C_Series-2.1.4.178\driverlib,复制这个文件夹里面的.c .h .s到你的工程中,当然你也可以全部复制过去,这里我就全部复制过去

第四步:设置工程选项,即增加头文件路径和设置宏

进入工程设置的方法,对着工程右键,也可按ALT+ENTER

增加头文件路径:

将例程中LED灯闪烁的代码复制过来:


#include <stdbool.h>
#include <stdint.h>
#include "inc/hw_memmap.h"
#include "driverlib/debug.h"
#include "driverlib/gpio.h"
#include "driverlib/rom.h"
#include "driverlib/sysctl.h"

/**
 * main.c
 */
int main(void)
{
    //
    // Enable the GPIO module.
    //
    ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
    ROM_SysCtlDelay(1);

    //
    // Configure PA1 as an output.
    //
    ROM_GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_1);

    //
    // Loop forever.
    //
    while(1)
    {
        //
        // Set the GPIO high.
        //
        ROM_GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_1, GPIO_PIN_1);

        //
        // Delay for a while.
        //
        ROM_SysCtlDelay(1000000);

        //
        // Set the GPIO low.
        //
        ROM_GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_1, 0);

        //
        // Delay for a while.
        //
        ROM_SysCtlDelay(1000000);
    }
}

编译一下,报错,提示信息如下,有函数没有定义,上面不是加了增加了头文件路径了吗?

随便找个函数全局搜索一下,发现在rom.h,这个函数有效是有条件宏的,增加宏定义,这里我们选择增加TARGET_IS_TM4C123_RB2,选择哪个,要看芯片上的Mark

CCS里面有增加宏的设置:

再编译一下,通过。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是使用TM4C123GH6PM微控制器和TB6612电机驱动器驱动直流电机的CCS代码示例: ```c #include <stdint.h> #include "tm4c123gh6pm.h" #define PWM_PERIOD 4000 // PWM周期,根据需要进行调整 #define MOTOR_SPEED_MAX 100 // 最大电机速度,根据需要进行调整 // 初始化PWM void PWM_Init(void) { SYSCTL_RCGCPWM_R |= 0x02; // 使能PWM模块1时钟 SYSCTL_RCGCGPIO_R |= 0x02; // 使能GPIO Port B时钟 GPIO_PORTB_AFSEL_R |= 0x01; // Port B引脚1复用为PWM功能 GPIO_PORTB_PCTL_R = (GPIO_PORTB_PCTL_R & 0xFFFFFF0F) + 0x00000050; // 设置PB1的复用功能为PWM GPIO_PORTB_DEN_R |= 0x01; // 使能PB1数字功能 SYSCTL_RCC_R |= 0x00100000; // 选择PWM系统时钟源为PLL PWM1_CTL_R = 0x00; // 关闭PWM模块1 PWM1_GENA_R = (PWM1_GENA_R & 0xFFFFFF8F) + 0x000000C0; // 设置PWM模块1的M1发生器为高电平计数模式 PWM1_LOAD_R = PWM_PERIOD - 1; // 设置PWM周期 PWM1_CMPA_R = 0; // 设置初始占空比为0 PWM1_CTL_R |= 0x01; // 启动PWM模块1 PWM1_ENABLE_R |= 0x02; // 使能PWM模块1的M1发生器 } // 设置电机速度 void Motor_SetSpeed(uint8_t speed) { if (speed > MOTOR_SPEED_MAX) { speed = MOTOR_SPEED_MAX; } PWM1_CMPA_R = (PWM_PERIOD - 1) * speed / MOTOR_SPEED_MAX; } // 初始化GPIO void GPIO_Init(void) { SYSCTL_RCGCGPIO_R |= 0x02; // 使能GPIO Port B时钟 GPIO_PORTB_DIR_R |= 0x0C; // 设置PB2和PB3引脚为输出 GPIO_PORTB_DEN_R |= 0x0C; // 使能PB2和PB3引脚数字功能 } // 设置电机方向 void Motor_SetDirection(uint8_t direction) { if (direction == 0) { GPIO_PORTB_DATA_R &= ~0x0C; // 设置PB2和PB3引脚为低电平,电机停止 } else if (direction == 1) { GPIO_PORTB_DATA_R = (GPIO_PORTB_DATA_R & ~0x04) | 0x08; // 设置PB2引脚为低电平,PB3引脚为高电平,电机正转 } else if (direction == 2) { GPIO_PORTB_DATA_R = (GPIO_PORTB_DATA_R & ~0x08) | 0x04; // 设置PB3引脚为低电平,PB2引脚为高电平,电机反转 } } int main(void) { PWM_Init(); // 初始化PWM GPIO_Init(); // 初始化GPIO while (1) { Motor_SetSpeed(50); // 设置电机速度为50% Motor_SetDirection(1); // 设置电机正转 } } ``` 在上述代码中,`PWM_Init`函数用于初始化PWM模块和引脚,`Motor_SetSpeed`函数用于设置电机速度,`Motor_SetDirection`函数用于设置电机方向。在`main`函数中,可以根据需要设置电机速度和方向。 请注意,此代码示例仅用于参考,具体的引脚和配置可能因实际硬件而异。在实际应用中,您可能需要根据芯片手册和硬件连接自行调整代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值