OC lesson 1

各位大神好,我新手,哪里不对请指教,敬请留言。


objective-c语言是ios以及mac os开发的核心语言,以后的UI学习,objective-c会始终贯穿。

面向对象具有三大特征:1⃣封装,隐藏内部实现,稳定外部接口。2⃣继承,子类可以直接使用父类中的成员3⃣多态,不同对象对同一个消息的响应。
面向对象的核心是类和对象;
抽象的类是一组具有相同(特征)属性和行为(功能)的具体事物(对象)的集合。

以前利用基本变量来构造复杂变量来满足程序员的需要,笔者认为类和对象的建立也是为了程序员更方便的编写。


先是类的声明,类的名字首大写,冒号来区分子类和父类,类里面的实例要写在{}里面

字符串的表示NSString *name,整型的还用int@public我们为了保护自己创建的类,都会加上的。默认的是private

功能的声明要写在{}之外,基本形式是    -(void)功能名字。 

有了声明,我们就要有功能实现的方法

实例方法(功能)用减号-,类方法则用加号+

上面是功能实现的方法。


主函数外面要先写上#import "student.h"我们才能调用自己的类;

初始化时我们使用[  ];malloc》》alloc;调用特性成员,我们发现它是结构体

调用功能时我们也用【】


### STM32 OC1PreloadConfig 配置与使用说明 在 STM32 的定时器外设中,`OC1PreloadConfig` 是一个用于配置输出比较通道预装载寄存器的功能。该功能允许在更新事件(Update Event)时将捕获/比较寄存器的值刷新到影子寄存器中,从而实现更精确的波形生成[^4]。 #### 1. 函数原型 以下是 `OC1PreloadConfig` 的函数原型: ```c void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload); ``` - **参数 1**:`TIM_TypeDef* TIMx`,指定要配置的定时器实例。 - **参数 2**:`uint16_t TIM_OCPreload`,指定是否启用预装载功能。可选值为: - `TIM_OCPreload_Enable`:启用预装载功能。 - `TIM_OCPreload_Disable`:禁用预装载功能。 #### 2. 使用场景 预装载功能通常用于需要精确控制 PWM 波形的应用场景。例如,在生成占空比动态变化的 PWM 信号时,如果直接修改捕获/比较寄存器的值,可能会导致波形失真或不稳定。通过启用预装载功能,可以确保在更新事件发生时,新的值才会被应用到输出比较通道中[^5]。 #### 3. 示例代码 以下是一个完整的示例代码,展示如何配置 STM32 的定时器以启用预装载功能: ```c #include "stm32f10x.h" void TIM2_PWM_Init(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; // 使能 TIM2 时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); // 配置 TIM2 时基 TIM_TimeBaseStructure.TIM_Period = 999; // 自动重装载值 TIM_TimeBaseStructure.TIM_Prescaler = 71; // 预分频器值 TIM_TimeBaseStructure.TIM_ClockDivision = 0; // 时钟分割 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // 向上计数模式 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); // 配置 TIM2 的通道 1 为 PWM 模式 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; // PWM 模式 1 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; // 使能输出 TIM_OCInitStructure.TIM_Pulse = 500; // 初始占空比 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; // 输出极性高 TIM_OC1Init(TIM2, &TIM_OCInitStructure); // 启用通道 1 的预装载功能 TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable); // 使能 TIM2 TIM_Cmd(TIM2, ENABLE); } ``` #### 4. 注意事项 - 在使用 `TIM_OC1PreloadConfig` 时,必须确保定时器已经正确初始化,并且输出比较通道已被正确配置。 - 如果启用了预装载功能,则需要在每次修改捕获/比较寄存器的值后,手动触发更新事件以应用新的值。可以通过调用 `TIM_GenerateEvent_Update(TIMx)` 来生成更新事件[^6]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值