🥬MSP432使用CCS模数转换(ADC)通用输入输出(GPIO)脉宽调制(PWM)通用异步接收器和发送器(UART)及其RTOS和机器人超声波距离检测
MSP432 | Code Composer Studio(CCS) | 模数转换(ADC) | 通用输入输出(GPIO) | 脉宽调制(PWM) | 通用异步接收器和发送器(UART) | 机器人 | 超声波检测距离
示例#1
这段代码只会打开一个 P1.0 板载 LED,它是 MSP432 在寄存器级别的红色板载 LED。
#include "msp.h"
void main(void)
{
WDT_A->CTL = WDT_A_CTL_PW | WDT_A_CTL_HOLD;
P1->DIR |= BIT0;
P1->OUT &= ~(BIT0);
P1->SEL0 &= ~(BIT0);
P1->SEL1 &= ~(BIT0);
while (1)
{
P1->OUT = BIT0;
__delay_cycles(1000000);
}
}
示例2
该程序将演示如何使用 Timer_A 创建周期性任务。 Timer_A 以不同的速率切换 LED。
#include "msp.h"
uint8_t tic = 0;
void main(void)
{
WDT_A->CTL = WDT_A_CTL_PW | WDT_A_CTL_HOLD;
P2->DIR |= BIT2;
P2->OUT &= ~(BIT2);
TIMER_A0->CTL = TIMER_A_CTL_TASSEL_2 | TIMER_A_CTL_MC_1;
TIMER_A0->CCR[0] = 60000 - 1;
TIMER_A0->CCTL[0] = TIMER_A_CCTLN_CCIE;
NVIC->ISER[0] = 1 << ((TA0_0_IRQn)&31);
__enable_irq();
while (1)
{
}
}
void TA0_0_IRQHandler(void)
{
if (tic++ >= 50)
{
P2->OUT ^= BIT2;
tic = 0;
}
TIMER_A0->CCTL[0] &= ~(TIMER_A_CCTLN_CCIFG);
}
示例#3
该程序将演示如何使用 Timer_A 创建周期性任务。 Timer_A 以不同的速率切换 LED。
#include "msp.h"
uint8_t tic = 0;
void main(void)
{
WDT_A->CTL = WDT_A_CTL_PW | WDT_A_CTL_HOLD;
P2->DIR |= BIT2;
P2->OUT &= ~(BIT2);
TIMER_A0->CTL = TIMER_A_CTL_TASSEL_2 | TIMER_A_CTL_MC_1;
TIMER_A0->CCR[0] = 60000 - 1;
TIMER_A0->CCTL[0] = TIMER_A_CCTLN_CCIE;
NVIC->ISER[0] = 1 << ((TA0_0_IRQn)&31);
__enable_irq();
while (1)
{
}
}
void TA0_0_IRQHandler(void)
{
if (tic++ >= 50)
{
P2->OUT ^= BIT2;
tic = 0;
}
TIMER_A0->CCTL[0] &= ~(TIMER_A_CCTLN_CCIFG);
}
模数转换(ADC)
ADXL335 加速度计的多通道 | 通过 ADC 使用两个或更多通道 | 读取单个通道并更改 LED 的状态
通用输入和输出 (GPIO)
脉宽调制 (PWM)
使用脉冲宽度调制 (PWM) 控制 LED 亮度 | 使用脉冲宽度调制 (PWM) 控制多个 LED 亮度 | SG90伺服电机控制演示 | 使用脉冲宽度调制 (PWM) 创建正弦波以交替输出强度
通用异步接收器和发送器 (UART)
通过UART0发送字符 | 使用外部串行接口 (UART2) 发送字符 | 通过中断接收数据并根据接收到的字符改变 LED 的状态
RTOS线程
Hwis线程 | Swis线程 | Hwi 线程与 Swi 线程交互 | 任务
Last updated