查看: 2754|回复: 5

[已解决] LPC845串口驱动问题

[复制链接]

该用户从未签到

6

主题

14

帖子

0

注册会员

Rank: 2

积分
66
最后登录
2018-1-23
发表于 2017-10-25 15:06:33 | 显示全部楼层 |阅读模式
网上买的LPC845开发板,按照串口驱动基本设置串口收不到数据,我的代码如下,大神帮忙看看哪里有问题

void UART(void)
{
       
// Enable clocks to relevant peripherals
  LPC_SYSCON->SYSAHBCLKCTRL[0] |= (1<<14|1<<7|1<<6);
// Connect UART0 TXD, RXD signals to port pins
LPC_SWM->PINASSIGN0 |=  ( 0x19 << 0 );                                 /* P0.25 ~ UART0_TXD             */
LPC_SWM->PINASSIGN0 |=  (0x18<< 8 );                                 /* P0.24 ~ UART0_RXD             */
  // Configure FRG0
  LPC_SYSCON->FRG0MULT = 0;
  LPC_SYSCON->FRG0DIV = 255;
  // Select main_clk as the source for FRG0
  LPC_SYSCON->FRG0CLKSEL =  0x00000001;
  // Select frg0clk as the source for fclk0 (to UART0)
  LPC_SYSCON->UART0CLKSEL =0x00000002;
  // Give USART0 a reset
LPC_SYSCON->PRESETCTRL0 &=  (~(1<<14));
  LPC_SYSCON->PRESETCTRL0 |= ~(~(1<<14));
  // Configure the USART0 baud rate generator
  LPC_USART0->BRG = 155;       
  // Configure the USART0 CFG register:
  // 8 data bits, no parity, one stop bit, no flow control, asynchronous mode
  LPC_USART0->CFG =(0x01<<2)| (0x00<<4)| (0x00<<6);
  // Configure the USART0 CTL register (nothing to be done here)
  // No continuous break, no address detect, no Tx disable, no CC, no CLRCC
  LPC_USART0->CTL = 0;
  // Clear any pending flags, just in case
  LPC_USART0->STAT = 0xFFFF;
// Enable USART0
  LPC_USART0->CFG |=  (0x01<<0);
  // Enable the USART0 RX Ready Interrupt
  LPC_USART0->INTENSET = (0x01<<0);
  NVIC_EnableIRQ(UART0_IRQn);
}

最佳答案

一种感觉 发表于 2017-10-25 16:02 是的,我是按照官网上的code bundle代码在keil上编译的,不确定的可能是开关矩阵那个配置,其他的是完全 ... 你先把LPC_SWM-&gtINASSIGN0这个相关的位清一下,然后再或,否则,如 ...
回复

使用道具 举报

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
20124
最后登录
2024-5-3
发表于 2017-10-25 15:49:49 | 显示全部楼层
本帖最后由 小恩GG 于 2017-10-25 15:55 编辑

楼主,你可以用官方的代码试试。
  1. http://www.nxp.com/products/microcontrollers-and-processors/arm-based-processors-and-mcus/lpc-cortex-m-mcus/lpc800-series-cortex-m0-plus-mcus/low-cost-microcontrollers-mcus-based-on-arm-cortex-m0-plus-cores:LPC84X?tab=Design_Tools_Tab
复制代码

回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

14

帖子

0

注册会员

Rank: 2

积分
66
最后登录
2018-1-23
 楼主| 发表于 2017-10-25 15:54:23 | 显示全部楼层
小恩GG 发表于 2017-10-25 15:49
楼主,你可以用官方的代码试试。
http://www.nxp.com/products/microcontrollers-and-processors/arm-base ...

官方的代码是可以用的,如果用官方的代码就需要很多.h的文件,所以自己就按照官网的驱动来写,现在就是找不到问题出在哪
回复 支持 反对

使用道具 举报

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
20124
最后登录
2024-5-3
发表于 2017-10-25 15:56:22 | 显示全部楼层
一种感觉 发表于 2017-10-25 15:54
官方的代码是可以用的,如果用官方的代码就需要很多.h的文件,所以自己就按照官网的驱动来写,现在就是找 ...

你参考code bundle的代码,就是寄存器控制的,没有那么多头文件。
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

14

帖子

0

注册会员

Rank: 2

积分
66
最后登录
2018-1-23
 楼主| 发表于 2017-10-25 16:02:55 | 显示全部楼层
小恩GG 发表于 2017-10-25 15:56
你参考code bundle的代码,就是寄存器控制的,没有那么多头文件。

是的,我是按照官网上的code bundle代码在keil上编译的,不确定的可能是开关矩阵那个配置,其他的是完全按照配置,串口收不到数据
回复 支持 反对

使用道具 举报

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
20124
最后登录
2024-5-3
发表于 2017-10-27 15:16:54 | 显示全部楼层
一种感觉 发表于 2017-10-25 16:02
是的,我是按照官网上的code bundle代码在keil上编译的,不确定的可能是开关矩阵那个配置,其他的是完全 ...

你先把LPC_SWM->PINASSIGN0这个相关的位清一下,然后再或,否则,如果本身寄存器以及有值了,你再或肯定不对。
或者,你可以直接debug下看看,这个寄存器是不是自己要配置的值,如果不是,就像我讲的,先把相关位清0,然后再赋值。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2024-5-4 11:57 , Processed in 0.128288 second(s), 26 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表