完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
调试串口0收发数据,用调试助手发12345678,但接受到8个1,大神帮忙看一下!!
#include "LPC8xx.h" #include #include #define UART_BPS 9600 #define BUFFSIZE 64 #define tiME (3.5*10)/UART_BPS volatile uint8_t UART0_GucRcvNew; uint8_t UART0_GucRcvBuf[BUFFSIZE]; uint8_t UART0_GucRcvProcess[BUFFSIZE]; uint32_t Gul0Num; uint32_t Sen0Num; void UARTInit (void) { LPC_SWM->PINASSIGN[0] &= ~( 0xFFFF << 0 ); LPC_SWM->PINASSIGN[0] |= ( 4 << 0 ); LPC_SWM->PINASSIGN[0] |= ( 0 << 8 ); LPC_SYSCON->UARTCLKDIV = 1; LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 14); LPC_USART0->BRG = SystemCoreClock * LPC_SYSCON->SYSAHBCLKDIV / (LPC_SYSCON->UARTCLKDIV * 16 * UART_BPS) - 1; LPC_USART0->CFG = (1 << 0) | (1 << 2) | (0 << 4) | (0 << 6); LPC_USART0->INTENSET = (1 << 0); NVIC_EnableIRQ(UART0_IRQn); NVIC_SetPriority(UART0_IRQn,5); } void UART0_IRQHandler (void) { LPC_MRT->CHANNEL[0].INTVAL = SystemCoreClock*TIME; LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31; if (LPC_USART0->STAT & 0x01) { UART0_GucRcvBuf[Gul0Num] = LPC_USART0->RXDATA; Gul0Num++; Sen0Num=Gul0Num; LPC_MRT->CHANNEL[0].INTVAL = SystemCoreClock*TIME; LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31; void UART0SendByte (uint8_t ucData) { while ((LPC_USART0->STAT & 0x04) == 0); LPC_USART0->TXDATA = ucData; while ((LPC_USART0->STAT & 0x08) == 0); } void UART0SendString (uint8_t *pucData, uint32_t uiLen) { uint32_t i; for(i=0;i UART0SendByte(*pucData); } } void MRTInit (void) { LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 10); LPC_SYSCON->PRESETCTRL &= ~(1 << 7); LPC_SYSCON->PRESETCTRL |= (1 << 7); LPC_MRT->CHANNEL[0].CTRL = (1 << 0) | (1 << 1); NVIC_EnableIRQ(MRT_IRQn); NVIC_SetPriority(UART0_IRQn,4); } /********************************************************************************************************* ** Function name: MRT_IRQHandler ** Descriptions: MRTÖжϷþÎñº¯Êý ** input parameters: ÎÞ ** output parameters: ÎÞ ** Returned value: ÎÞ *********************************************************************************************************/ void MRT_IRQHandler (void) { uint32_t i; LPC_MRT->CHANNEL[0].STAT = (1 << 0); UART0_GucRcvNew=1; for(i=0;i UART0_GucRcvProcess=UART0_GucRcvBuf; } Gul0Num=0; LPC_MRT->CHANNEL[0].INTVAL = 0; LPC_MRT->CHANNEL[0].INTVAL |= 1UL << 31; 关闭定时器 } int main (void) { SystemInit(); UARTInit(); MRTInit(); // GuiNum=0; // GucRcvNew=0; while (1) { if(UART0_GucRcvNew==1) { UART0_GucRcvNew=0; UART0SendString (UART0_GucRcvProcess,Sen0Num); } } } |
|
相关推荐
3个回答
|
|
系统时钟的问题
最佳答案
|
|
|
|
以解决
|
|
|
|
怎么解决的? 分享一下
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
410 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核源代码的目录结构和文件说明
445 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核简介
1135 浏览 0 评论
非科班也能玩转Android应用,体验QT跨平台能力-迅为RK3568开发板
989 浏览 0 评论
飞凌嵌入式-ELFBOARD-ELF 2硬件分享之最小系统原理
1085 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 18:35 , Processed in 0.736313 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号