- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于vk的串口展方案
VK3XXX 串口扩展芯片应用手册
前言
简介
芯片结构
写寄存器协议:
编程参考:
//***************************************************************************
//Function:往寄存器里面写数据
//输入:port为子串口的路数(C1C0),reg为寄存器的地址(A3A2A1A0)
//dat 为写入寄存器的值
//返回: 无
//****************************************************************************
void write_reg(unsigned char port,unsigned char reg,unsigned char dat)
{
uart_sendByte(0x80+((port-1)4)+reg); //写地址
uart_sendByte(dat);//写数据
}
B、主uart读寄存器操作
读操作时,先向VK3XXX的RX写入命令字节,相应的数据字节从MTX读取,其操作时序(无校验,禁止转义和红外模式),如图:
读寄存器协议:
编程参考:
//***************************************************************************
//Function:读取寄存器值
//输入:port为子串口的路数(C1C0),reg为寄存器的地址(A3A2A1A0)
//输出: 返回值是读取的寄存器的值
//***************************************************************************
unsigned char read_reg(unsigned char port,unsigned char reg)
{
uart_sendByte(((port-1)4)+reg); //发送寄存器地址
return uart_recByte();
}
C、主uart写FIFO操作
写FIFO协议:(多字节写入)
注意:读写FIFO操作是一个特殊的读写寄存器操作命令。该命令只能用于读写子串口的缓冲区的数据,也就是FIFO中的数据。
编程参考:
//*****************************************************************************
//Function:写fifo
//输入:port为子串口的路数,num是读取的数据的个数 ,p是将要写入数据的首地址
//返回:无
//*****************************************************************************
void write_fifo(unsigned char port,unsigned char *p,unsigned char num)
{
unsigned char n;
uart_sendByte(0xc0+((port-1)4)+(num-1));
for(n=0;nnum;n++)
uart_sendByte(*(p+n));
}
D、主uart读FIFO操作
读FIFO协议:(多字节读取)
注意:读写FIFO操作是一个特殊的读写寄存器操作命令。该命令只能用于读写子串口的缓冲区的数据,也就是FIFO中的数据。
编程参考:
//****************************************************************************
//Function:读取fifo中的数据
//输入:port为子串口的路数,num是读取的数据的个数
//返回:函数返回值dat为读取到的数据的首地址指针
//*******************************************************************************
unsigned char *read_fifo(unsigned char port,unsigned char num)
{
unsigned char n;
unsigned char dat[8];
uart_sendByte(0x40+((port-1)4)+(num-1));
for(n=0;n
文档评论(0)