上海妇科疾病研究所 上海女性不孕医院 上海引产医院 无痛引产痛不痛 上海人流医院 白癜风治疗医院 上海小儿脑瘫医院 上海女子医院
Blackfin的技术文章和教学视频连载12:UART-Blackfin-技术中心-国内专业ADI仿真器,Blackfin开发板,DSP芯片,软件算法,解决方案提供商-北京四维卓信电子有限公司
用户名: 密码:
主页 设为首页 加入收藏
      产品中心       技术中心       下载中心        社区新闻        诚聘英才       大学计划        关于我们       技术论坛
  您的当前位置:ADSP开源社区 >> 技术中心 >> Blackfin 今天是:
技术中心  
SigmaDSP
SHARC
A2B音频总线
Blackfin
ADI操作系统
ADSP-218X
TigerSAHRC
ADI DSP仿真器
产品导航
ADI DSP仿真器
SigmaDSP开发板
ADI A2B总线开发板
SHARC DSP开发板
销售网络
Blackfin  
Blackfin的技术文章和教学视频连载12:UART
[ 作者:OP ] [ 来源:ADSP开源社区 ] [ 发布时间:2014-8-8 ]
   这一篇讲一下Blackfin的UART,就是传说中的串口,OP认为的最普通最常见最实用接口。

    串口,做个简单的名词介绍,UART(Universal Asynchronous Receiver/Transmitter (UART) port)接口,是全双工通用的串行接口,由RX 和TX 两根线组成,扩展RS232 芯片可以直接和计算机串口通讯,通常作为调试用的命令和数据通讯接口。

    ADSP-BF53x 的UART 接口,除了支持标准串口功能外,还支持IrDA 模式,在硬件上增加一个红外通讯模块,可以进行红外数据传输。当设置 IrDA 模式后,输出的波形会与原数据相反,且信号宽度变窄。

    UART 接口通讯的波特率配置值可以通过下面公式进行计算:BAUD RATE = SCLK/(16 x Divisor)

    说一说UART的接口寄存器:

    寄存器             功能
    UART_THR UART      传输数据寄存器
    UART_RBR UART      接收缓存寄存器
    UART_DLL UART      波特率配置低8 位寄存器
    UART_DLH UART      波特率配置高8 位寄存器
    UART_IER UART      中断使能寄存器
    UART_IIR UART      中断识别寄存器
    UART_LCR UART      线路控制寄存器
    UART_MCR UART      调制控制寄存器
    UART_LSR UART      线路状态寄存器
    UART_SCR UART      暂存寄存器
    UART_GCTL UART     全局控制寄存器

    来看一段核心代码:

*pUART_GCTL=0x0009;
*pUART_LCR=0x0080;// DLAB=1 允许访问DLL 和DLH
*pUART_DLL=div; //将变量div 的值写入波特率配置寄存器
*pUART_DLH=div>>8; //DLL DLH 分别赋值
*pUART_LCR=0x0003;// 允许访问 RBR THR 和IER
*pUART_IER=0x0001;// 接收中断允许
*pSIC_IAR0 = 0xffffffff;
*pSIC_IAR1 = 0xf3ffffff; // UART 中断等级设置
*pSIC_IAR2 = 0xffffffff;
register_handler(ik_ivg10, UART_ISR); // 注册UART 中断等级为10,标志为UART_ISR
*pSIC_IMASK = 0x00004000; //使能UART 中断
*pUART_THR=TXbuf[i]; //向UART 传输数据寄存器写数据
while(!(*pUART_LSR&0x0020)); //等待传输完成
EX_INTERRUPT_HANDLER(UART_ISR) //UART 接收数据中断函数
{
if(*pUART_LSR&DR) //判断是否有新的数据。
{
if(cont>512) //防止buff 溢出,测试代码,将接收到的数据重复写入512 字节的buff
cont = 0;
RXbuf[cont]=*pUART_RBR; //读取数据
cont++;
}
}

    这段代码实现了配置波特率为 9600,设定了数据接收中断,运行代码后,会将数组Txbuf 中的字符串通过串口发送出,当接收到数据后,会进入中断函数读取数据。

    附上这段核心代码的完整源码供参考: 链接: http://pan.baidu.com/s/1zXVK6 密码: a841

    串口很简单,没什么多说的,我们也录了一个视频教程:

    

    视频的清晰版下载: 链接: http://pan.baidu.com/s/1kTGADdP 密码: gad3

    下一篇准备说说Blackfin的专用音频接口:SPORT
联系我们 | 关于我们 | 免责声明 | 诚征英才 | 友情链接
Copyright 2019 All rights reserved  本网页版权属Open ADSP所有
北京海淀区中关村大街32号新中发市场3659 邮编100100
电话 18611096839 
粤ICP备14035876号-1