STM32程序移植的一些注意方法

本文介绍了STM32程序移植的步骤和注意事项。首先,建立子函数并声明,或者创建独立的子函数文件和头文件。接着,将子函数文件添加到项目中。在配置子函数时,结构体应先于结构体元素赋值。此外,主函数调用子函数时需避免死循环,以免影响后续函数执行。例如,当主函数调用两个含有死循环的子函数时,前一个子函数会持续执行,导致后一个子函数无法正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,步骤
建立需要的子函数及将对应的函数在所有子函数之前声明。另一种方法是:新建一个子函数(.c)文件和头文件库(.h)文件,分别保存在用户文件夹中(这个文件夹是主函数所在的文件夹),将刚刚保存的子函数文件添加到程序文件夹中(保存在主函数所在的文件夹并不表示包含到了函数里,因此要在编程软件(即开发环境)添加,添加方法详见http://blog.youkuaiyun.com/ambizxzh/article/details/74324288
移植的方法也可以参照上面这个链接。
二,注意
1,在配置子函数文件时,当出现多个结构体时结构体要在任何结构体元素赋值之前,也就是说对于A结构体,它必须放在A结构体、B结构体、C…等结构体的结构体元素赋值之前否则会出现错误

void TIM3_Configuration(void)
{
    TIM_TimeBaseInitTypeDef TIM_TimeBaseStruct;
    TIM_OCInitTypeDef TIM_OCInitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;

    //GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);//端口映射,详见STM32中文参考手册p119

    //定时器初始化
    TIM_TimeBaseStruct.TIM_Period=899;//初值(在72M下,计数900个(内部自动加1,所以899))
    TIM_TimeBaseStruct.TIM_Prescaler=0;/预分频为0,位系统频率72M
    TIM_TimeBaseStruct.TIM_ClockDivision=0;
    TIM_TimeBaseStruct.TIM_CounterMode=TIM_CounterMode_Up;//向上

    TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStruct);


    //pwm 初始化
    TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;//模式1下,小于寄存器设定值(占空比)为高,大于为低,输出电平不同
    TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;//比较输出使能
    TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low;//输出为低电平

    TIM_OC2Init(TIM3,&TIM_OCInitStructure);

    TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);//使能预装载寄存器,以可以多次使用

    TIM_Cmd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值