共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 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |