金牌会员
- 积分
- 2669
- 威望
- 1377
- 贡献
- 668
- 兑换币
- 240
- 注册时间
- 2012-3-31
- 在线时间
- 312 小时
|
7#
楼主 |
发表于 2013-3-6 21:26:18
|
只看该作者
yangkuanqaz8598 发表于 2013-3-6 21:03
那你最后串口已经出来了啊,求解下我试了UART1 、UART5都出不来,我的USB->串口线又是好的,真不知道哪里 ...
不会啊,我用的LPLD 的库,
我捋一遍
#define TERM_PORT UART5_BASE_PTR
#define TERMINAL_BAUD 115200
这几句是定义串口5
void sysinit (void)
{
/*
* 使能所有端口的时钟. 为了配置引脚复用则必须使能这里, 所以大多数代码需要配置这些.
*/
SIM_SCGC5 |= (SIM_SCGC5_PORTA_MASK
| SIM_SCGC5_PORTB_MASK
| SIM_SCGC5_PORTC_MASK
| SIM_SCGC5_PORTD_MASK
| SIM_SCGC5_PORTE_MASK );
/* 配置系统时钟 */
core_clk_mhz = LPLD_PLL_Setup(CORE_CLK_MHZ);
/*
* 用pll_init函数的返回值来定义变量:core_clk_khz和periph_clk_khz(以kHz为单位)
* 这些变量将在其他功能上
*/
core_clk_khz = core_clk_mhz * 1000;
periph_clk_khz = core_clk_khz / (((SIM_CLKDIV1 & SIM_CLKDIV1_OUTDIV2_MASK) >> 24)+ 1);
/*
*出于仿真的目的, 使能追踪时钟和FlexBus时钟来
*/
trace_clk_init();
fb_clk_init();
/* 使能选中的 UART */
if (TERM_PORT == UART3_BASE_PTR)
{
/* 使能 PTC17 引脚的 UART3_TXD 功能 */
PORTC_PCR17 = PORT_PCR_MUX(0x3); // 该引脚的 功能3 是 UART
/* 使能 PTC16 引脚的 UART3_RXD 功能 */
PORTC_PCR16 = PORT_PCR_MUX(0x3); // 该引脚的 功能3 是 UART
}
if (TERM_PORT == UART5_BASE_PTR)
{
/* 使能 PTE8 引脚的 UART5_TXD 功能 */
PORTE_PCR8 = PORT_PCR_MUX(0x3); // 该引脚的 功能3 是 UART
/* 使能 PTE9 引脚的 UART5_RXD 功能 */
PORTE_PCR9 = PORT_PCR_MUX(0x3); // 该引脚的 功能3 是 UART
}
/* UART0 and UART1 由 core clock 提供时钟源, 但是其他所有 UARTs 由
* peripheral clock 提供时钟源. 所以要在这里决定用哪个时钟作为 uart_init 的参数.
*/
if ((TERM_PORT == UART0_BASE_PTR) | (TERM_PORT == UART1_BASE_PTR))
uart_init (TERM_PORT, core_clk_khz, TERMINAL_BAUD);
else
uart_init (TERM_PORT, periph_clk_khz, TERMINAL_BAUD);
#if(defined(DEBUG_PRINT))
// 打印系统频率
printf("Core Clock:%dMHz!\r\n", core_clk_mhz);
printf("Bus Clock:%dkHz!\r\n", periph_clk_khz);
#endif
}
这是LPLD写的一个系统配置函数,里边只配置了串口3和5的UART功能引脚,没配置串口1的,
|
|