历史上的今天
今天是:2024年12月12日(星期四)
2018年12月12日 | LPC2214 SPI及UART初始化程序
2018-12-12 来源:eefocus
//SPI1口发数
void spi1senddata(uint8 data)
{
IO0CLR = le58_ctrl_cs; // 片选
S1PDR = data;
while(0==(S1PSR&0x80)); // 等待SPIF置位,即等待数据发送完毕
IO0SET = le58_ctrl_cs;
}
/****************************************************************************
* 名称:UART0_Init()
* 功能:串口工作参数设置。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void UART0_Init(void)
{ uint16 Fdiv;
U0LCR = 0x03; //8位字长度,1位停止位,无校验,禁止间隔发送单个字符。
U0FCR = 0x00; // 不使能FIFO,并设置触发点为4字节。
// 设置波特率
U0LCR = 0x83; //DLAB =1,允许访问分频器
Fdiv = (Fpclk / 16) / UART0_BAUD;
U0DLM = TRUCT_MSB8(Fdiv);
U0DLL = TRUCT_LSB8(Fdiv);
U0LCR = 0x03; //DLAB =0,才允许访问U0RBR和U0THR
U0IER = 0x01; //只允许RBR中断(即接收中断和接收FIFO超时中断)
}
/****************************************************************************
串口0发送字节
****************************************************************************/
void UART0_SendByte(uint8 data)
{
U0THR = data; // 发送数据
while( (U0LSR&0x20)==0 ); // 等待数据发送完毕
}
/****************************************************************************
* 名称:IRQ_UART0()
* 功能:串口UART0接收中断。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void __irq IRQ_UART0(void)
{
if( 0x04==(U0IIR&0x0E) ) // RDA标志
{
receive_data=U0RBR;
rcv_new=1;
ready=1;
}
else if(0x0C==(U0IIR&0x0E) ) // CTI标志
{
while(U0LSR & 0x01) //读数据,直到FIFO为空
{
receive_data=U0RBR;
rcv_new=1;
ready=1;
}
}
VICVectAddr = 0x00; // 中断处理结束
}
/****************************************************************************
* 名称:UART1_Init()
* 功能:串口工作参数设置。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void UART1_Init(void)
{ uint16 Fdiv;
U1LCR = 0x03; //8位字长度,1位停止位,无校验,禁止间隔发送单个字符。
U1FCR = 0x00; // 不使能FIFO,并设置触发点为4字节。
// 设置波特率
U1LCR = 0x83; //DLAB =1,允许访问分频器
Fdiv = (Fpclk / 16) / UART1_BAUD;
U1DLM = TRUCT_MSB8(Fdiv);
U1DLL = TRUCT_LSB8(Fdiv);
U1LCR = 0x03; //DLAB =0,才允许访问U1RBR和U1THR
U1IER = 0x01; //只允许RBR中断(即接收中断和接收FIFO超时中断)
}
/****************************************************************************
串口1发送字节
****************************************************************************/
void UART1_SendByte(uint8 data)
{
U1THR = data; // 发送数据
while( (U1LSR&0x20)==0 ); // 等待数据发送完毕
}
/****************************************************************************
* 名称:spi1_Init()
* 功能:串口工作参数设置。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void spi1_init(void)
{
S1PCCR = 0x52; // 设置SPI时钟分频
S1PCR = 0x20; // 设置SPI接口模式,MSTR=1,CPOL=0,CPHA=0,LSBF=0
}
史海拾趣
|
坚冰的融化往往意味着春天的到来。然而,冰冻时间长达十年之久的北京移动资费的下调,又将意味着什么呢? “此次运营商资费下调的真实目的是在为3G做准备。”计世资讯资深分析师郭海涛表示。 易观国际的邱林也认为,此次以套餐形式出现 ...… 查看全部问答> |
|
为什么我原理图中的BUS总线显示连接上了,ERC检查也没错,导入到PCB中就没有连上呢,部分原理图如下,谢谢高手指导! [ 本帖最后由 zhouyueping1986 于 2008-6-16 16:03 编辑 ]… 查看全部问答> |
|
这是设计师专门为意大利米兰一家公司员工设计的办公专用头罩,它的作用就是在一些开放式办公环境里,戴上它,员工们可以把自己的注意力集中在一点,从而盼望能进步大家的办公效率。 头罩设计了15款,比较好笑的是,有些头罩戴着让人感到样子象一个 ...… 查看全部问答> |
|
本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata 大家上午好,请问有谁用过AVR的单片机写过18B20的驱动啊 … 查看全部问答> |
|
看着大家的帖子,我试着修改程序。 可是,怎么就不能进入main呢 我用led_test测试,已经执行到那一行了,下面是相关代码,请大家指点一下 ; bl Led_Test ...… 查看全部问答> |
|
中心简介: 广东省嵌入式软件公共技术中心(简称GEC)是广东美的集团嵌入式产品研发中心,原是广东省政府公开向社会竞标的项目,由广东美的集团中标承建。中心建设资金总投入3000万元,其中省政府资助资金900万元、地方政府配套450万元、美的 ...… 查看全部问答> |
|
CSetDlg::CSetDlg(CWnd* pParent /*=NULL*/) : CDialog(CSetDlg::IDD, pParent) { //{{AFX_DATA_INIT(CSetDlg) m_bchannel1 =TRUE;//初始化 &nbs ...… 查看全部问答> |




