电赛控制题专题:MSPM0G3507最新解析与探讨
目录
一、开发环境配置
二、GPIO
(1)一般函数
三、Timer
(1)一般函数
(2)中断函数
一、开发环境配置
【2024电赛】TI MSPM0快速入门课 – 开发环境部署_哔哩哔哩_bilibili
在下载ccs时,可以有多种功能选择,但是如果选择了除MSPM0之外的功能,可能会安装许多其他程序。
二、GPIO
(1)一般函数
基本逻辑思维和stm32差不多,在这里讲解一下常用相关函数
__STATIC_INLINE void DL_GPIO_setPins(GPIO_Regs* gpio, uint32_t pins)
@brief 给一组GPIO引脚置高电平
@param[in] gpio 指向外设寄存器覆盖层的指针
@param[in] pins 需设置成高电平的引脚
__STATIC_INLINE void DL_GPIO_clearPins(GPIO_Regs* gpio, uint32_t pins)
@brief 给一组GPIO引脚置低电平
@param[in] gpio 指向外设寄存器覆盖层的指针
@param[in] pins 需设置成低电平的引脚
delay_cycles(cycles)
#define delay_cycles(cycles) DL_Common_delayCycles(cycles)
@brief 消耗指定的CPU周期数
__STATIC_INLINE void DL_GPIO_togglePins(GPIO_Regs* gpio, uint32_t pins)
@brief T翻转一组GPIO引脚电平
@param[in] gpio 指向外设寄存器覆盖层的指针
@param[in] pins 需要翻转电平的引脚
三、Timer
(1)一般函数
__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn):
\brief 使能中断
\param [in] IRQn 设备特定中断名称
【注】中断名称可以去.h文件中找
__STATIC_INLINE void DL_Timer_startCounter(GPTIMER_Regs *gptimer)
#define DL_TimerG_startCounter DL_Timer_startCounter
@brief 打开计时器
@param[in] gptimer 指向外设寄存器覆盖层的指针(确定是要打开哪个寄存器)
补充:睡眠模式
若退出运行模式,芯片可进入以下多种模式。其中,睡眠模式的主要用途是降低功耗。电赛不太需要对程序进行低功耗优化。
DL_SYSCTL_enableSleepOnExit()
@brief 退出主函数时启用睡眠模式
__WFI()
@brief 等待进入中断模式
(2)中断函数
一般定时器功能会和中断一起使用,但是中断函数需要我们自行编写。
①函数名称可以去.h文件中找,一般为TIMER_x_INST_IRQHandler格式
②一般在中断函数内使用switch-case语句,来判定是哪个计时器触发的中断
中断函数样例:
void TIMER_0_INST_IRQHandler(void)
{
switch (DL_TimerG_getPendingInterrupt(TIMER_0_INST)) {
case DL_TIMER_IIDX_ZERO:
DL_GPIO_togglePins(GPIO_LEDS_PORT,
GPIO_LEDS_USER_LED_1_PIN | GPIO_LEDS_USER_TEST_PIN);
break;
default:
break;
}
}
作者:Nucleonnn