注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

大秦正声蓝牙之家18302938569

Ti,Nordic,Dialog,cypress等蓝牙烧录工具

 
 
 

日志

 
 

LPC54102寄存器直接编程串口通信!  

2015-03-28 19:27:58|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

LPC54102有多个串口,我尝试用寄存器直接操作!经过多次测试,可以发送和接收数据!
内部晶振12MHz,没有锁频,波特率9600b/s,使用第一个串口!也可以把其它串口都用上。
参考代码:
unsigned long buf;

#define DELAY_COUNT    0xFFFF

void Delay( long int Count)
{
  for(; Count!= 0;Count--);
}
main()
{


*(long*)0x400000c0=0xe10b;///使能P0口

*(long*)0x1c002000=0xf0000002;
*(long*)0x4001C004=0x191;///p01为串口

*(long*)0x4001C000=0x191;;///p00为串口

 *(long*)0x40000020=0x1;
*(long*)0x40080010=0x8002;///
*(long*)0x40084000=0x4;
*(long*)0x40084020=78;///9600b/s

*(long*)0x40084000|=0x1;
///printf("hello world!");
asm("nop");

  
 *(long*)0x4008401c='L';///buf;
 while(!(*(long*)0x40084008&0x04));
  *(long*)0x4008401c='P';///buf;
  while(!(*(long*)0x40084008&0x04));
*(long*)0x4008401c='C';///buf;
 while(!(*(long*)0x40084008&0x04));
  *(long*)0x4008401c='5';///buf;
 while(!(*(long*)0x40084008&0x04));
  *(long*)0x4008401c='4';///buf;
  while(!(*(long*)0x40084008&0x04));
*(long*)0x4008401c='1';///buf;
 while(!(*(long*)0x40084008&0x04));
  *(long*)0x4008401c='0';///buf;
 while(!(*(long*)0x40084008&0x04));
  *(long*)0x4008401c='2';///buf;
  while(!(*(long*)0x40084008&0x04));
*(long*)0x4008401c=0xd;///buf;
 while(!(*(long*)0x40084008&0x04));
 *(long*)0x4008401c=0xa;///buf;
 while(!(*(long*)0x40084008&0x04));
  while(1)
  {
    *(long*)0x4008401c='L';///buf;
 while(!(*(long*)0x40084008&0x04));
  *(long*)0x4008401c='P';///buf;
  while(!(*(long*)0x40084008&0x04));
*(long*)0x4008401c='C';///buf;
 while(!(*(long*)0x40084008&0x04));
  *(long*)0x4008401c='5';///buf;
 while(!(*(long*)0x40084008&0x04));
  *(long*)0x4008401c='4';///buf;
  while(!(*(long*)0x40084008&0x04));
*(long*)0x4008401c='1';///buf;
 while(!(*(long*)0x40084008&0x04));
  *(long*)0x4008401c='0';///buf;
 while(!(*(long*)0x40084008&0x04));
  *(long*)0x4008401c='2';///buf;
  while(!(*(long*)0x40084008&0x04));
*(long*)0x4008401c=0xd;///buf;
 while(!(*(long*)0x40084008&0x04));
 *(long*)0x4008401c=0xa;///buf;
 while(!(*(long*)0x40084008&0x04));
  Delay(DELAY_COUNT);
   Delay(DELAY_COUNT);
    Delay(DELAY_COUNT);
        
     }
  }

///下边是老外的头文件定义

/* Main memory addresses */
#define LPC_FLASHMEM_BASE          0x00000000UL
#define LPC_SRAM0_BASE             0x02000000UL
#define LPC_SRAM1_BASE             0x02010000UL
#define LPC_ROM_BASE               0x03000000UL
#define LPC_SRAM2_BASE             0x03400000UL
#define LPC_GPIO_PORT_BASE         0x1C000000UL
#define LPC_DMA_BASE               0x1C004000UL
#define LPC_CRC_BASE               0x1C010000UL
#define LPC_SCT_BASE               0x1C018000UL
#define LPC_MBOX_BASE              0x1C02C000UL
#define LPC_ADC_BASE               0x1C034000UL
#define LPC_FIFO_BASE              0x1C038000UL

/* APB0 peripheral group addresses */
#define LPC_SYSCON_BASE            0x40000000UL
#define LPC_TIMER2_BASE            0x40004000UL
#define LPC_TIMER3_BASE            0x40008000UL
#define LPC_TIMER4_BASE            0x4000C000UL
#define LPC_GPIO_GROUPINT0_BASE    0x40010000UL
#define LPC_GPIO_GROUPINT1_BASE    0x40014000UL
#define LPC_PIN_INT_BASE           0x40018000UL
#define LPC_IOCON_BASE             0x4001C000UL
#define LPC_UTICK_BASE             0x40020000UL
#define LPC_FMC_BASE               0x40024000UL
#define LPC_PMU_BASE               0x4002C000UL
#define LPC_WWDT_BASE              0x40038000UL
#define LPC_RTC_BASE               0x4003C000UL

/* APB1 peripheral group addresses */
#define LPC_ASYNC_SYSCON_BASE      0x40080000UL
#define LPC_USART0_BASE            0x40084000UL
#define LPC_USART1_BASE            0x40088000UL
#define LPC_USART2_BASE            0x4008C000UL
#define LPC_USART3_BASE            0x40090000UL
#define LPC_I2C0_BASE              0x40094000UL
#define LPC_I2C1_BASE              0x40098000UL
#define LPC_I2C2_BASE              0x4009C000UL
#define LPC_SPI0_BASE              0x400A4000UL
#define LPC_SPI1_BASE              0x400A8000UL
#define LPC_TIMER0_BASE            0x400B4000UL
#define LPC_TIMER1_BASE            0x400B8000UL
#define LPC_INMUX_BASE             0x40050000UL
#define LPC_RITIMER_BASE           0x40070000UL
#define LPC_MRT_BASE               0x40074000UL

/* Main memory register access */
#define LPC_GPIO           ((LPC_GPIO_T            *) LPC_GPIO_PORT_BASE)
#define LPC_DMA            ((LPC_DMA_T             *) LPC_DMA_BASE)
#define LPC_CRC            ((LPC_CRC_T             *) LPC_CRC_BASE)
#define LPC_SCT            ((LPC_SCT_T             *) LPC_SCT_BASE)
#define LPC_MBOX           ((LPC_MBOX_T            *) LPC_MBOX_BASE)
#define LPC_ADC            ((LPC_ADC_T             *) LPC_ADC_BASE)
#define LPC_FIFO           ((LPC_FIFO_T            *) LPC_FIFO_BASE)

/* APB0 peripheral group register access */
#define LPC_SYSCON         ((LPC_SYSCON_T          *) LPC_SYSCON_BASE)
#define LPC_TIMER2         ((LPC_TIMER_T           *) LPC_TIMER2_BASE)
#define LPC_TIMER3         ((LPC_TIMER_T           *) LPC_TIMER3_BASE)
#define LPC_TIMER4         ((LPC_TIMER_T           *) LPC_TIMER4_BASE)
#define LPC_GINT           ((LPC_GPIOGROUPINT_T    *) LPC_GPIO_GROUPINT0_BASE)
#define LPC_PININT         ((LPC_PIN_INT_T         *) LPC_PIN_INT_BASE)
#define LPC_IOCON          ((LPC_IOCON_T           *) LPC_IOCON_BASE)
#define LPC_UTICK          ((LPC_UTICK_T           *) LPC_UTICK_BASE)
#define LPC_WWDT           ((LPC_WWDT_T            *) LPC_WWDT_BASE)
#define LPC_RTC            ((LPC_RTC_T             *) LPC_RTC_BASE)

/* APB1 peripheral group register access */
#define LPC_ASYNC_SYSCON   ((LPC_ASYNC_SYSCON_T    *) LPC_ASYNC_SYSCON_BASE)
#define LPC_USART0         ((LPC_USART_T           *) LPC_USART0_BASE)
#define LPC_USART1         ((LPC_USART_T           *) LPC_USART1_BASE)
#define LPC_USART2         ((LPC_USART_T           *) LPC_USART2_BASE)
#define LPC_USART3         ((LPC_USART_T           *) LPC_USART3_BASE)
#define LPC_I2C0           ((LPC_I2C_T             *) LPC_I2C0_BASE)
#define LPC_I2C1           ((LPC_I2C_T             *) LPC_I2C1_BASE)
#define LPC_I2C2           ((LPC_I2C_T             *) LPC_I2C2_BASE)
#define LPC_SCT0           LPC_SCT
#define LPC_SPI0           ((LPC_SPI_T             *) LPC_SPI0_BASE)
#define LPC_SPI1           ((LPC_SPI_T             *) LPC_SPI1_BASE)
#define LPC_TIMER0         ((LPC_TIMER_T           *) LPC_TIMER0_BASE)
#define LPC_TIMER1         ((LPC_TIMER_T           *) LPC_TIMER1_BASE)
#define LPC_INMUX          ((LPC_INMUX_T           *) LPC_INMUX_BASE)
#define LPC_RITIMER        ((LPC_RITIMER_T         *) LPC_RITIMER_BASE)
#define LPC_MRT            ((LPC_MRT_T             *) LPC_MRT_BASE)
#define LPC_PMU            ((LPC_PMU_T             *) LPC_PMU_BASE)

  评论这张
 
阅读(939)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017