修改选错型号
- 右键工程–>properties
文件导出.
- GPIO基本操作
- 示例:按键翻转led灯
#include <driverlib.h>
/**
* main.c
*/
void main(void)
{
WDT_A_hold(WDT_A_BASE);
GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);
GPIO_setAsOutputPin(GPIO_PORT_P4, GPIO_PIN7);
GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0);
GPIO_setOutputLowOnPin(GPIO_PORT_P4, GPIO_PIN7);
GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P2, GPIO_PIN1);
GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1,GPIO_PIN1);
while(1)
{
if(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN1)||
GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P2,GPIO_PIN1))
{
__delay_cycles(5000);
if(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN1))
{
while(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN1));
GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
}
if(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P2, GPIO_PIN1))
{
while(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P2, GPIO_PIN1));
GPIO_toggleOutputOnPin(GPIO_PORT_P4, GPIO_PIN7);
}
}
__delay_cycles(5000);
}
}
时钟
时钟信号 :aclk,mclk,smclk
定时器模块
int main()
{
WDT_A_hold( WDT_A_BASE ); // 关闭看门狗
GPIO_setAsOutputPin( GPIO_PORT_P1, GPIO_PIN0 ); // 配置P1.0为输出模式
GPIO_setOutputLowOnPin( GPIO_PORT_P1 , GPIO_PIN0 ); // 设置P1.0输出低电平
Timer_A_initUpModeParam uptimer; // Timer_A初始化变量
uptimer.clockSource = TIMER_A_CLOCKSOURCE_SMCLK; // 配置时钟源为SMCLK
uptimer.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1; // 配置1分频
uptimer.timerPeriod = 50000; // 配置CCR0
uptimer.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_DISABLE;
// 关闭Timer_A中断
uptimer.captureCompareInterruptEnable_CCR0_CCIE = TIMER_A_CCIE_CCR0_INTERRUPT_ENABLE;
// 使能CCR0捕获比较中断
uptimer.timerClear = TIMER_A_DO_CLEAR; // 使能清除
uptimer.startTimer = true; // 需要立即开始Timer_A
Timer_A_initUpMode( TIMER_A0_BASE , &uptimer ); // 初始化Timer_A
__bis_SR_register( LPM0_bits + GIE ); // 进入LPM0,使能中断
return 0;
}
#pragma vector = TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR(void)
{
GPIO_toggleOutputOnPin( GPIO_PORT_P1, GPIO_PIN0 ); // 反转P1.0状态
}
产生pwm波
#include "driverlib.h"
#define TIMER_PERIOD 511
#define DUTY_CYCLE 350
// 占空比为350、510=68.45%
void main (void)
{
//Stop WDT
WDT_A_hold(WDT_A_BASE);
//P2.0 as PWM output
GPIO_setAsPeripheralModuleFunctionOutputPin(
GPIO_PORT_P2,
GPIO_PIN0
);//设置PA2.0为pwm波输出引脚。
//Generate PWM - Timer runs in Up mode
Timer_A_outputPWMParam param = {0};
param.clockSource = TIMER_A_CLOCKSOURCE_SMCLK;
param.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1;
param.timerPeriod = TIMER_PERIOD;
param.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_1;
param.compareOutputMode = TIMER_A_OUTPUTMODE_RESET_SET;
param.dutyCycle = DUTY_CYCLE;
Timer_A_outputPWM(TIMER_A1_BASE, ¶m);
//Enter LPM0
__bis_SR_register(LPM0_bits);//使能中断
//For debugger
__no_operation();
}
弃坑。。
无库函数教程,不想看官方的examples,麻利跑路。