在线时间2208 小时
UID2073122
注册时间2016-1-12
NXP金币119
TA的每日心情 | 开心 2020-6-18 08:45 |
---|
签到天数: 812 天 连续签到: 1 天 [LV.10]以坛为家III
金牌会员
 
- 积分
- 6321
- 最后登录
- 2025-7-15
|
本帖最后由 原来的你 于 2016-11-5 14:49 编辑
LPC824具有三个串口,这点让我很喜欢,相比较于别的单片机来说,串口资源优势相当明显,对于设计产品来说特别好,可以减少软件模拟串口的开销,稳定而且方便大家开发。串口作为MCU的重要组成,基本上设计的电路中必不可少。对于这个重要的组成。我们要好好掌握。下面介绍LPC824的串口。
LPC824的串口基本功能:
• 异步下最高速率可达1.875Mbits/s
• 同步下最高速率可达10Mbits/s
• 数据格式:7、 8、 9个数据位, 1、 2个停止位
• 数据校验:无校验/奇校验/偶校验
• 中断源:接收就绪,发送就绪,发送器闲置,校验错,帧错
• DMA传输:数据收发可使用DMA
• 每数据位的过采样倍率从5-16,从最接近位时间中央的3个点中表决
• 分数波特率发生器:可使用常用时钟产生包括115200在内的几乎所有波特率
LPC824的串口扩展功能:
• 使用RTS和CTS信号支持硬件流控
• 可以产生与识别break信号
• RS-485通信模式
• 多机通信(9个位)模式,软件匹配地址
• 同步通信模式,支持主机和从机,可以选择数据相位和连续时钟输出
• 自动检测波特率
• 异步通信模式下只能从睡眠模式下唤醒
• 同步通信模式下可以从全部低功耗模式下唤醒
/* Board Debug UART Initialisation function */
STATIC void Board_UART_Init(void) //板载调试串口功能初始化
{
/* Enable the clock to the Switch Matrix */
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_SWM);//使能开关矩阵时钟
/* Connect the TXD_O and RXD_I signals to port pins(P0.4, P0.0) */
//Chip_SWM_DisableFixedPin(SWM_FIXED_XTALIN);
//Chip_SWM_DisableFixedPin(SWM_FIXED_XTALOUT);
Chip_SWM_DisableFixedPin(SWM_FIXED_ACMP_I1);//关闭开关矩阵ACMP I1功能
Chip_SWM_DisableFixedPin(SWM_FIXED_ADC11);//关闭开关矩阵ADC11功能
/* Enable UART Divider clock, divided by 1 */
Chip_Clock_SetUARTClockDiv(1);//使能串口分频时钟
/* Divided by 1 */
if(DEBUG_UART == LPC_USART0)
{
Chip_SWM_MovablePinAssign(SWM_U0_TXD_O, 4);//LPC_USART0发送引脚设置
Chip_SWM_MovablePinAssign(SWM_U0_RXD_I, 0);//LPC_USART0接收引脚设置
}
else if(DEBUG_UART == LPC_USART1)
{
Chip_SWM_MovablePinAssign(SWM_U1_TXD_O, 4);//LPC_USART1发送引脚设置
Chip_SWM_MovablePinAssign(SWM_U1_RXD_I, 0);//LPC_USART1接收引脚设置
}
else
{
Chip_SWM_MovablePinAssign(SWM_U2_TXD_O, 4);//LPC_USART2发送引脚设置
Chip_SWM_MovablePinAssign(SWM_U2_RXD_I, 0);//LPC_USART2接收引脚设置
}
/* Disable the clock to the Switch Matrix to save power */
Chip_Clock_DisablePeriphClock(SYSCTL_CLOCK_SWM);//关闭开关矩阵时钟降低功耗
}
/* Initialize debug output via UART for board */
void Board_Debug_Init(void) //初始化板载调试串口
{
#if defined(DEBUG_UART)
Board_UART_Init();////板载调试串口功能初始化
Chip_UART_Init(DEBUG_UART);//初始化调试串口
Chip_UART_ConfigData(DEBUG_UART, UART_CFG_DATALEN_8 | UART_CFG_PARITY_NONE | UART_CFG_STOPLEN_1);//调试串口8位数据长度、无校验、1位停止位
Chip_Clock_SetUSARTNBaseClockRate((115200 * 6 * 16), true);//串口基础速度,可以不要
Chip_UART_SetBaud(DEBUG_UART, 115200);//串口波特率115200
Chip_UART_Enable(DEBUG_UART);//使能调试串口
Chip_UART_TXEnable(DEBUG_UART);//使能串口发送
#endif
}
|
|