打印
[Kinetis]

迅速开发K64的RGB三色灯

[复制链接]
874|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ideafor|  楼主 | 2016-1-25 20:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RGB, IO, pi, GPIO, gp
RGB三色灯有三个引脚,分别是三原色RED、BLUE、GREEN。低电平时点亮相应颜色的灯,根据配色可以产生各种颜色的灯,使用方便。下面开始讲解工程,使用超核的库
这个是建立完工程的图片,建议直接使用工程模版,自己新建的总会出问题,可能是这个库兼容性不那么好,但是 ...


                    
#include "gpio.h"
#include "common.h"
/* CH Kinetis固件库 V2.50 版本 */
/* 修改主频 请修改 CMSIS标准文件 system_MKxxxx.c 中的 CLOCK_SETUP 宏 */

/* GPIO 工作模式 */
/*
*         @arg kGPIO_Mode_IFT :悬空输入
*         @arg kGPIO_Mode_IPD :下拉输入
*         @arg kGPIO_Mode_IPU :上拉输入
*         @arg kGPIO_Mode_OOD :开漏输出 如果不清楚这2种输出的区别请 百度..
*         @arg kGPIO_Mode_OPP :推挽输出
*/



void GPIO_Initial()
{
        GPIO_QuickInit(HW_GPIOB, 22, kGPIO_Mode_OPP);
        GPIO_QuickInit(HW_GPIOB, 21, kGPIO_Mode_OPP);
        GPIO_QuickInit(HW_GPIOE, 26, kGPIO_Mode_OPP);
        
        GPIO_WriteBit(HW_GPIOB, 22, 1);//RED
        GPIO_WriteBit(HW_GPIOB, 21, 1);//BLUE
        GPIO_WriteBit(HW_GPIOE, 26, 1);//GREEN
}
int main(void)
{
    /* 初始化Delay */
    DelayInit();
   
    /* 另外一种初始化方式: 结构体模式的初始化 有点类似STM32固件库*/
//    GPIO_InitTypeDef GPIO_InitStruct1;
//    GPIO_InitStruct1.instance = HW_GPIOE;
//    GPIO_InitStruct1.mode = kGPIO_Mode_OPP;
//    GPIO_InitStruct1.pinx = 6;
//    GPIO_Init(&GPIO_InitStruct1);
   
//GOIO初始化函数
    GPIO_Initial();
    while(1)
    {

        //DelayMs(500);
                GPIO_ToggleBit(HW_GPIOB, 22);
                DelayMs(1000);
                GPIO_ToggleBit(HW_GPIOB, 22);
                GPIO_ToggleBit(HW_GPIOB, 21);
                DelayMs(1000);
                GPIO_ToggleBit(HW_GPIOB, 21);
                GPIO_ToggleBit(HW_GPIOE, 26);
                DelayMs(1000);
                GPIO_ToggleBit(HW_GPIOE, 26);
    }
}


相关帖子

沙发
ideafor|  楼主 | 2016-1-25 21:00 | 只看该作者
一、库已经在启动文件中使能时钟了,想要更改时钟频率可以看启动文件的代码,只需修改CLOCK_SETUP宏定义的值即可
#include <stdint.h>
#include "MK64F12.h"

#define DISABLE_WDOG    1

#ifndef CLOCK_SETUP
#define CLOCK_SETUP     0
#endif
/* Predefined clock setups
   0 ... Multipurpose Clock Generator (MCG) in FLL Engaged Internal (FEI) mode
         Default  part configuration.
         Reference clock source for MCG module is the slow internal clock source 32.768kHz
         Core clock = 96MHz, BusClock = 48MHz
   1 ... Multipurpose Clock Generator (MCG) in PLL Engaged External (PEE) mode
         Maximum achievable clock frequency configuration.
         Reference clock source for MCG module is an external clock source 50MHz
         Core clock = 120MHz, BusClock = 60MHz
   2 ... Multipurpose Clock Generator (MCG) in Bypassed Low Power Internal (BLPI) mode
         Core clock/Bus clock derived directly from an fast internal clock 4MHz with no multiplication
         The clock settings is ready for Very Low Power Run mode.
         Core clock = 4MHz, BusClock = 4MHz
   3 ... Multipurpose Clock Generator (MCG) in Bypassed Low Power External (BLPE) mode
         Core clock/Bus clock derived directly from the RTC oscillator clock source 32.768kHz
         The clock settings is ready for Very Low Power Run mode.
         Core clock = 32.768kHz, BusClock = 32.768kHz
   4 ... Multipurpose Clock Generator (MCG) in PLL Engaged External (PEE) mode
         USB clock setup
         USB clock divider is set for USB to receive 48MHz input clock.
         Reference clock source for MCG module is an external clock source 50MHz
         USB clock divider is set for USB to receive 48MHz input clock.
         Core clock = 120MHz, BusClock = 60MHz
   5 ... Multipurpose Clock Generator (MCG) in Bypassed Low Power External (PEE) mode
         Core clock/Bus clock derived directly from an external clock 50MHz
         Core clock = 180MHz, BusClock = 80MHz
二、GPIO_QuickInit(uint32_t nstance, uint32_t pinx, GPIO_Mode_Type  mode )函数的说明
uint8_t GPIO_QuickInit (uint32_t instance,


uint32_t pinx,


GPIO_Mode_Type mode

)
instanceGPIO模块号
  • HW_GPIOA 芯片的PORTA端口
  • HW_GPIOB 芯片的PORTB端口
  • HW_GPIOC 芯片的PORTC端口
  • HW_GPIOD 芯片的PORTD端口
  • HW_GPIOE 芯片的PORTE端口



pinx   端口上的引脚号 0~31
mode引脚工作模式
  • kGPIO_Mode_IFT 悬空输入
  • kGPIO_Mode_IPD 下拉输入
  • kGPIO_Mode_IPU 上拉输入
  • kGPIO_Mode_OOD 开漏输出
  • kGPIO_Mode_OPP 推挽输出


控制引脚电平翻转的两种方法:
1.使用GPIO_ToggleBit(HW_GPIOE, 6);   只需更改端口和引脚即可   
2.使用位带操作:PEout(6) = !PEout(6);

使用特权

评论回复
板凳
ideafor|  楼主 | 2016-1-25 21:01 | 只看该作者
可以自己将LED配成其他颜色,例如红+蓝+绿=白
上传整个工程,以后只需在这个,K64FN1M那个文件夹中继续建立新的文件夹,把RGB文件夹下的东西拷过来然后修改变为其他工程

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

149

帖子

1

粉丝