共2条
1/1 1 跳转至页
ZLG,easyarm2200,UART1 请问ZLG:easyarm2200的UART1用作一般串口时:

问
只用到TxD1,RxD1,GND三根线,其他的脚一定要设置成GPIO吗?
PINSEL0=0x55550000;对吗? 答 1: re:普通串口只要PINSEL0=0x00050000 就可以了。 答 2: 我的程序是这样的:
#include "config.h"
/****************************************************************************
* 名称:UART1Init()
* 功能:UART1初始化(MODEM功能)。
* 入口参数:bps 波特率
* 出口参数:无
****************************************************************************/
void Uart1Init(uint32 bps)
{
uint16 Fdiv;
PINSEL0 = 0x00050000; // 选择管脚为UART1
U1LCR = 0x83; // 允许访问分频因子寄存器 ,8位字符长度
Fdiv = (Fpclk / 16) / bps; // 设置波特率
U1DLM = Fdiv / 256;
U1DLL = Fdiv % 256;
U1LCR = 0x03; // 禁止访问分频因子寄存器 ,8位字符长度
// 且设置为8,1,n
//U1IER = 0x0D; // 允许接收和MODEM中断
//U1FCR = 0x87; // 初始化FIFO
// U1MCR = 0x03;
}
/****************************************************************************
* 名称: Uart1SendByte()
* 功能: Uart1发送一个字节数据
* 入口参数:data 要发送的字节数据
* 出口参数:无
*****************************************************************************/
void Uart1SendByte(uint8 data)
{
U1THR = data ;
while((U1LSR&0x40)==0);
}
/****************************************************************************
* 名称:DelayNS()
* 功能:长软件延时
* 入口参数:dly 延时参数,值越大,延时越久
* 出口参数:无
****************************************************************************/
void DelayNS(uint32 dly)
{ uint32 i;
for(; dly>0; dly--)
for(i=0; i<10000; i++);
}
int main(void)
{
Uart1Init(115200);
while(1)
{
Uart1SendByte('1');
DelayNS(10);
}
return(0) ;
}
在用串口调试工具观察的时候,没有看到数据。开发板上JP1,jp2断开,jp3全部短接。 答 3: 单步调试的时候,发现U1THR一直是0x00000000,怎么会这样的? 答 4: 请问咨询电话是什么?
PINSEL0=0x55550000;对吗? 答 1: re:普通串口只要PINSEL0=0x00050000 就可以了。 答 2: 我的程序是这样的:
#include "config.h"
/****************************************************************************
* 名称:UART1Init()
* 功能:UART1初始化(MODEM功能)。
* 入口参数:bps 波特率
* 出口参数:无
****************************************************************************/
void Uart1Init(uint32 bps)
{
uint16 Fdiv;
PINSEL0 = 0x00050000; // 选择管脚为UART1
U1LCR = 0x83; // 允许访问分频因子寄存器 ,8位字符长度
Fdiv = (Fpclk / 16) / bps; // 设置波特率
U1DLM = Fdiv / 256;
U1DLL = Fdiv % 256;
U1LCR = 0x03; // 禁止访问分频因子寄存器 ,8位字符长度
// 且设置为8,1,n
//U1IER = 0x0D; // 允许接收和MODEM中断
//U1FCR = 0x87; // 初始化FIFO
// U1MCR = 0x03;
}
/****************************************************************************
* 名称: Uart1SendByte()
* 功能: Uart1发送一个字节数据
* 入口参数:data 要发送的字节数据
* 出口参数:无
*****************************************************************************/
void Uart1SendByte(uint8 data)
{
U1THR = data ;
while((U1LSR&0x40)==0);
}
/****************************************************************************
* 名称:DelayNS()
* 功能:长软件延时
* 入口参数:dly 延时参数,值越大,延时越久
* 出口参数:无
****************************************************************************/
void DelayNS(uint32 dly)
{ uint32 i;
for(; dly>0; dly--)
for(i=0; i<10000; i++);
}
int main(void)
{
Uart1Init(115200);
while(1)
{
Uart1SendByte('1');
DelayNS(10);
}
return(0) ;
}
在用串口调试工具观察的时候,没有看到数据。开发板上JP1,jp2断开,jp3全部短接。 答 3: 单步调试的时候,发现U1THR一直是0x00000000,怎么会这样的? 答 4: 请问咨询电话是什么?
共2条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 | |
汽车电子中巡航控制系统的使用被打赏10分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏100分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 | |
分享电子控制安全气囊计算机知识点被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【OZONE】使用方法总结被打赏20分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K314】芯片启动流程分析被打赏40分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K146】S32DS RTD 驱动环境搭建被打赏12分 |