MSPM0笔记

一、GPIO

引脚的预配置在syscfg文件里改,改完生成即可,和CUBEMX其实差不多

DL_GPIO_readPins(GPIO_GROUP,GPIO_GROUP_NAME_PIN)//读引脚电平
DL_GPIO_setPins(GPIO_GROUP,GPIO_GROUP_NAME_PIN)//电平置高
DL_GPIO_clearPins(GPIO_GROUP,GPIO_GROUP_NAME_PIN)//电平置低

对于外部中断,将GPIO改为input状态, 在digital那一栏里改为上拉即可

二、Timer

CCS的外设配置与STM32略有不同,简单来说:

①先在syscfg里选好想要的定时器(时钟源一般用BUSCLK即可)

②配置中断

③设置时钟数分频(非必要),预分频系数

④中断的话用zero event即可

//中断配置
NVIC_EnableIRQ(TIMER_x_INST_INT_IRQN);
DL_TimerG_startCounter(TIMER_x_INST);

对于PWM波,直接在syscfg里面对TIM_PWM进行设置即可,只需配置频率&占空比

//PWM波开启
DL_TimerG_startCounter(PWM_0_INST );

三、串口

串口的接收一般会用到中断,需要在syscfg里打开接收中断,baud率一般为115200,也要设定

    NVIC_ClearPendingIRQ(UART_x_INST_INT_IRQN);//清除标志位
    NVIC_EnableIRQ(UART_x_INST_INT_IRQN);//打开中断

    DL_UART_Main_receiveData(UART_x_INST);//串口接收
    DL_UART_Main_transmitData(UART_x_INST,variable)//串口发送

    void UART_x_INST_IRQHandler(void)//串口中断函数

四、Printf串口重定向

重定向不需要打开串口中断,只要设置好baud等参数即可

注意包括stdio&string库

int fputc(int c,FILE* stream)//用于发送字符串
{
    DL_UART_Main_transmitDataBlocking(UART_x_INST,c);
    return c;
}

int fputs(const char* restrict s,FILE* restrict stream)//用于发送数字等
{
    uint16_t i,len;
    len=strlen(s);
    for(i=0;i<len;i++)
    {
        DL_UART_Main_transmitDataBlocking(UART_x_INST,s[i]);
    }
    return len;
}

int puts(const char *_ptr)
{
    int count=fputs(_ptr,stdout);
    count+=fputs("\n",stdout);
    return count;
}

五、外部中断(电赛用读编码器)

N、一些常用函数的封装

一、ms延时

void delay_ms(uint32_t ms)
{
    while(ms--)
        delay_cycles(CPUCLK_FREQ/1000)
}

二、PWM占空比修改

void set_duty(float duty,uint8_t channel)
{
    uint32_t Comparevalue;
    Comparevalue=PWM period count - Pwm period count*value;
    DL_TimerG_setCaptureComparevalue(PWM_x_INST,Comparevalue,DL_TIMER_CC_x_INDEX)
                                     //定时器   //Comparevalue值  //对应通道
}

三、PWM频率修改

void set_Freq(uint32_t freq,uint8_t channel)
{
    period=PWM_x_INST_CLK/freq;
    DL_Timer_setloadValue(PWM_x_INST,period);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锟0409

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值