共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 设备功耗web监控界面(ESP32C5)被打赏¥28元 | |
| OrangePiZero2W系统被打赏¥33元 | |
| Linux环境下以模拟方式快速实现出入管理功能测试被打赏¥24元 | |
| 树莓派3+Klipper,老3D打印机满血升级被打赏¥33元 | |
| OK1126B-S开发板下串口屏及其应用被打赏¥21元 | |
| 低功耗超声波液位测距仪(ESP32S3)被打赏¥27元 | |
| 在K230DBOX上实现多时段语音提示功能被打赏¥14元 | |
| 使K230DBOX实现相机持续拍照功能被打赏¥12元 | |
| 基于K230DBOX的文本管理器设计被打赏¥14元 | |
| 基于K230DBOX的彩色画板功能实现被打赏¥15元 | |
我要赚赏金
