打印
[Kinetis]

【YL-KL26Z开发】+ 串口通讯

[复制链接]
706|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
secretuniverse|  楼主 | 2016-1-19 20:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天分享给大家的是KL26Z的串口通讯程序,通过USB调试口与PC相连,PC发送数据,KL26Z接收后返回相同的数据。

程序不是很复杂,只要配置好串口就可以工作了。

下面是查询法的串口通讯:
#include "includes.h"

int  main (void)
{
    SystemCoreClockUpdate();                                            /* 时钟配置*/

    PORT_ENABLE_CLK(MKL_PORTA);                                         /* GPIO时钟使能 */

    uart0Init(9600,0,0,8,1);                                            /* UART0初始化 */
    while (1) {
        while(UART0_S1_REG(UART0_BASE_PTR) & UART0_S1_RDRF_MASK){       /* 清除中断标志 */
            uart0SendChar(UART0_D_REG(UART0_BASE_PTR));                 /* 返回接收数据 */
        }
    }
}
然后再看中断法的串口通讯:
#include "includes.h"

int  main (void)
{
    SystemCoreClockUpdate();                                            /* 时钟配置*/

    PORT_ENABLE_CLK(MKL_PORTA);                                         /* GPIO时钟使能 */

    uart0Init(9600,0,0,8,1);                                            /* UART0初始化 */
    while (1) {

        }
    }
}



相关帖子

沙发
secretuniverse|  楼主 | 2016-1-19 20:13 | 只看该作者
我们可以发现二者非常相似,配置完全相同,并且在串口初始化函数中发现二者都有一样的中断服务函数,但是当我把查询法WHILE中的程序删掉后发现无法实现功能。

经过一番查找发现,串口的初始化函数中有这么一段
#if UART0_IRQ_ENABLE   
        #if UART0_SEND_IRQ
        UART0_C2_REG(uartPtr) |= UART0_C2_TCIE_MASK;
        #endif
        #if UART0_RECEIVE_IRQ
        UART0_C2_REG(uartPtr) |= UART0_C2_RIE_MASK;
        #endif

当我在MKL_uart.h中发现UART0_IRQ_ENABLE 时,就有了答案。


查询法:                                                                                                 中断法:
#define UART0_DEFAULT_OPEN      1                                                  #define UART0_DEFAULT_OPEN      1                                                                  
#define UART0_IRQ_ENABLE        0                                                     #define UART0_IRQ_ENABLE        1   

然后就有了结果。

使用特权

评论回复
板凳
E-Kaia| | 2016-1-21 20:34 | 只看该作者
中断的代码在哪里呢?现在特别纠结中断里该如何写程序

使用特权

评论回复
地板
capturesthe| | 2016-1-23 21:24 | 只看该作者
串口如果用dma发送的话是不是就不占用CPU时间了啊

使用特权

评论回复
5
Micachl| | 2016-1-24 19:53 | 只看该作者
有没有用过串口向蓝牙发送数据,蓝牙最快速率能达到多少呢
接收的是iPhone iOS系统

使用特权

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

本版积分规则

12

主题

55

帖子

1

粉丝