查看: 3893|回复: 11

[分享] KL26使用心得

[复制链接]
  • TA的每日心情

    2017-5-27 11:02
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    15

    主题

    566

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1890
    最后登录
    2017-5-27
    发表于 2015-6-6 19:25:58 | 显示全部楼层 |阅读模式
    YL-KL26Z开发板是ARM® Cortex™-M0+内核,主频48MHZ,片上资源有:128K内部Flash,和32K的SRAM,8通道16位ADC,12位DAC,2路SPI,2路I2C,1路I2S,2路UART,1路LPUART,USB 2.0 FS OTG/ Host/Device控制器,板子小巧精致,功能齐全。
    本人主要在该板上对ADC,DAC,SPI,UART做了研究和实验,下面分享下心得。

    1、ADC实验,通过测量电位器VR1 3-2引脚之间的电压采集计算得出AD值,通过调节电位器旋钮即可改变此电压值。电路图如下:
    QQ图片20150606191114.png
    采用U盘下载程序,按板子上的复位按钮后程序开始执行,执行结果通过串口调试工具查看,具体如下:
    QQ图片20150606190225.png
    2、DAC实验
    电路原理图如下
    QQ图片20150606191123.png
    用DA产生一个正弦波并驱动喇叭响。下载程序后会听到喇叭清脆的响声。源码:uint16 gu16WaveformBuffer[33] = {0};
    uint16 gu16SineWaveBuffer[]  =  {2047,2446,2830,3184,3494,3749,3938,4055,4094,4055,3938,3749,3494,3184,2830,2446,2047,
                                     1648,1264,910,600,345,156,39,0,39,156,345,600,910,1264,1648,2047,0xFFF};

    uint16 *pWaveform, *pGenerateData;

    void myDelay (INT32U ulTime)
    {
        INT32U i;

        i = 0;
        while (ulTime--) {
            for (i = 0; i < 2000; i++);
        }
    }

    int  main (void)
    {
                    int i,num=2;
        INT16U uiVout = 1;                                 /* ¼ÆËãת»»Öµ                   */
                   
        SystemCoreClockUpdate();
        uart0Init(9600,0,0,8,1);
                    printf("DAC generated take SineWave Test ");
                    dacInit();         /* DAC³õʼ»¯                    */
             
                    while (1) {       
                                    for(i=0;i<33;i++)
                                    {
                                            gu16WaveformBuffer=gu16SineWaveBuffer;
                                            dacTrigger(gu16WaveformBuffer);                                             /* DACÊä³ö                      */
                                            myDelay(1);
                                            if(i==33) i=0;
                                    }                       
            }
    }
    3、SPI实验
    本开发板是连一个SPI接口的flash,可以实现对flash 的读写。SPI协议需要另外学习一下。
    电路图
    QQ图片20150606190423.png
    源码SPI初始化设置等:
    void spiInit (SPI_MemMapPtr SPI,BOOLEAN bMode)
    {
        SIM_SCGC4 |= SIM_SCGC4_SPI0_MASK;                                   /* ¿ªÆôSPI0                     */
                                                                            /* CPOL = 0, SCK ΪµÍÓÐЧ       */
                                                                            /* MSTR = 1, SPI ´¦ÓÚÖ÷ģʽ     */
                                                                            /* LSBF = 0, MSB (λ7)ÔÚÏÈ      */
                                                                            /* SPIE = 0, SPI Öжϱ»½ûÖ¹     */
                                                                            /* CPHA = 0, SCKµÚÒ»¸öʱÖÓÑØ²ÉÑù*/
        SPI->C1 |= SPI_C1_SPE_MASK ;                                        /* SPIʹÄÜ                      */
        SPI->C1 &= ~(1 << SPI_C1_CPHA_SHIFT);
        if(bMode == Master) {                                               /* Ö÷ģʽ                       */
            SPI->C1 |= SPI_C1_MSTR_MASK;
        } else {                                                            /* ´Óģʽ                       */
            SPI->C1 &= ~(1 << SPI_C1_MSTR_SHIFT);
        }
        SPI->BR = 2;//SPI_BR_SPPR(0) ;                                         /* ʱÖÓ·ÖÆµ                     */
    }

    /*********************************************************************************************************
    ** º¯ÊýÃû³Æ: Send_Byte
    ** º¯Êý¹¦ÄÜ£ºSPI·¢ËÍÒ»¸ö×Ö½ÚÊý¾Ý SPI0Çý¶¯
    ** ÊäÈë²ÎÊý: data
    ** Êä³ö²ÎÊý: ÎÞ
    ** ·µ »Ø Öµ£ºÎÞ
    *********************************************************************************************************/
    INT8U Send_Byte (unsigned char ucdata)
    {
        INT8U ucTemp;
        while((SPI0_S & SPI_S_SPTEF_MASK) != SPI_S_SPTEF_MASK);             /* ·¢ËÍǰҪÏÈÅжϼĴæÆ÷         */
        SPI0_DL = ucdata;

        while((SPI0_S & SPI_S_SPRF_MASK) != SPI_S_SPRF_MASK);               /* ½ÓÊÕÊý¾ÝÓÐЧ                 */
        ucTemp = SPI0_DL;                                                    /* Çå¿Õ½ÓÊÕ±ê¼Ç¼Ä´æÆ÷           */
        ucTemp = ucTemp;
            return ucTemp;
    }

    /*********************************************************************************************************
    ** º¯ÊýÃû³Æ:Get_Byte
    ** º¯Êý¹¦ÄÜ:SPI½Ó¿Ú½ÓÊÕÒ»¸ö×Ö½ÚÊý¾Ý ʹÓÃSPI0
    ** ÊäÈë²ÎÊý:ÎÞ
    ** Êä³ö²ÎÊý:ÎÞ
    *********************************************************************************************************/
    INT8U  Get_Byte (void)
    {
        INT8U ucTemp;
        while((SPI0_S & SPI_S_SPTEF_MASK) != SPI_S_SPTEF_MASK);             /* ·¢ËÍǰҪÏÈÅжϼĴæÆ÷         */
        SPI0_DL = 0xff;                                                      /* ·¢ËÍ¿ÕÊý¾Ý¶ÁÈ¡ÄÚÈÝ           */

        while((SPI0_S & SPI_S_SPRF_MASK) != SPI_S_SPRF_MASK);               /* ½ÓÊÕÊý¾ÝÓÐЧ                 */
        ucTemp = SPI0_DL;
        return (ucTemp);                                             /* ·µ»Ø½ÓÊÕµ½µÄÊý¾Ý             */
    }

    /*********************************************************************************************************
    ** Function name:           spiTX
    ** Descriptions:            spi³õʼ»¯
    ** input parameters:        SPIÊäÈë»ùµØÖ· ²éѯ·½Ê½·¢ËÍÊý¾Ý
    ** output parameters:       none
    ** Returned value:          none
    ** Created by:              
    ** Created date:           
    **--------------------------------------------------------------------------------------------------------
    ** Modified by:            
    ** Modified date:           
    *********************************************************************************************************/
    void spiTX(SPI_MemMapPtr SPI,INT8U ucData)
    {
        while((SPI->S & SPI_S_SPTEF_MASK) != SPI_S_SPTEF_MASK);             /* ·¢ËÍǰҪÏÈÅжϼĴæÆ÷         */
        SPI->DL = ucData;
    }


    烧写实验结果
    QQ图片20150606190242.png QQ图片20150606190249.png

    4、串口调试
    串口实验,可以从键盘上输入任何你想输入的字符,然后可以从串口调试工具上看到相应的字符,我输入的是abcdefg i love u,从串口上得到以下结果
    QQ图片20150606190256.png


    klntuo累
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-9-17 19:57
  • 签到天数: 2310 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    107

    主题

    4270

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    10481
    最后登录
    2023-9-17
    发表于 2015-6-6 21:37:29 | 显示全部楼层
    没有看到AD的变化啊。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
    发表于 2015-6-6 21:53:52 | 显示全部楼层
    这个串口助手用的 多吗,我用的大傻的
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-7-13 18:31
  • 签到天数: 127 天

    连续签到: 1 天

    [LV.7]常住居民III

    19

    主题

    1229

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    6124
    最后登录
    2024-12-19
    发表于 2015-6-6 22:12:11 | 显示全部楼层
    wambob 发表于 2015-6-6 21:53
    这个串口助手用的 多吗,我用的大傻的

    好用就行,无所谓的
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    27

    主题

    157

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    465
    最后登录
    2015-6-20
    发表于 2015-6-6 23:08:10 | 显示全部楼层
    很好 学习了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19

    主题

    317

    帖子

    0

    高级会员

    Rank: 4

    积分
    862
    最后登录
    1970-1-1
    发表于 2015-6-7 01:59:37 | 显示全部楼层
    很详细,,谢谢分享。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8

    主题

    300

    帖子

    0

    高级会员

    Rank: 4

    积分
    746
    最后登录
    2016-5-26
    发表于 2015-6-7 09:22:04 | 显示全部楼层
    谢谢分享。。
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-3 11:19
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    50

    主题

    1万

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    14090
    最后登录
    2024-4-19
    发表于 2015-6-7 10:20:18 | 显示全部楼层
    谢谢分享。。 nothing.png nothing.png nothing.png nothing.png nothing.png nothing.png nothing.png nothing.png nothing.png nothing.png
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-5-27 11:02
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    15

    主题

    566

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1890
    最后登录
    2017-5-27
     楼主| 发表于 2015-6-7 14:09:48 来自手机 | 显示全部楼层
    shaoziyang 发表于 2015-6-6 21:37
    没有看到AD的变化啊。

    调节电位器会变化,我没有截那个图
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-5-27 11:02
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    15

    主题

    566

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1890
    最后登录
    2017-5-27
     楼主| 发表于 2015-6-7 14:10:40 来自手机 | 显示全部楼层
    wambob 发表于 2015-6-6 21:53
    这个串口助手用的 多吗,我用的大傻的

    哪个都行,能用就行呗
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-27 12:25 , Processed in 0.110940 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表