完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
MSP430接收UART的数据,但是一直没有接收到,可是sscom又显示已经发送了数据。不知道是没有进中断还是什么问题。能否帮忙看看是不是代码哪里错了。
下面是代码 void UARtinit() { /* GPIO_setAsPeripheralModuleFunctionInputPin( GPIO_PORT_P9, GPIO_PIN5 ); GPIO_setAsPeripheralModuleFunctionOutputPin( GPIO_PORT_P9, GPIO_PIN4 ); */ GPIO_setAsPeripheralModuleFunctionInputPin( GPIO_PORT_P5, GPIO_PIN7 ); //Initialize USCI UART module //Baudrate = 9600, clock freq =8M // 1.048MHz //UCBRx = 6, UCBRFx = 13, UCBRSx = 0, UCOS16 = 1 USCI_A_UART_initParam param = {0}; param.selectClockSource = USCI_A_UART_CLOCKSOURCE_ACLK; param.clockPrescalar =3 /*52*/; param.firstModReg = 0/*1*/; param.secondModReg = 3/*0*/; param.parity = USCI_A_UART_NO_PARITY; param.m***orL***First = USCI_A_UART_LSB_FIRST; param.numberofStopBits = USCI_A_UART_ONE_STOP_BIT; param.uartMode = USCI_A_UART_IDLE_LINE_MULTI_PROCESSOR_MODE; param.overSampling = USCI_A_UART_LOW_FREQUENCY_BAUDRATE_GENERATION/*USCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION*/; if(STATUS_FAIL == USCI_A_UART_init(USCI_A1_BASE, ¶m)) { return; } //Enable UART module for operation USCI_A_UART_enable(USCI_A1_BASE); //Set USCI UART in dormant/sleep mode //USCI_A_UART_setDormant(USCI_A1_BASE); //Enable Receive Interrupt USCI_A_UART_clearInterrupt(USCI_A1_BASE, USCI_A_UART_RECEIVE_INTERRUPT ); USCI_A_UART_enableInterrupt(USCI_A1_BASE, USCI_A_UART_RECEIVE_INTERRUPT ); } //****************************************************************************** // //This is the USCI_A1 interrupt vector service routine. // //****************************************************************************** #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__) #pragma vector=USCI_A1_VECTOR __interrupt #elif defined(__GNUC__) __attribute__((interrupt(USCI_A1_VECTOR))) #endif void USCI_A1_ISR(void) { switch(__even_in_range(UCA1IV,4)) { //Vector 2 - RXIFG case 2: //USCI_A1 TX buffer ready? while(!USCI_A_UART_getInterruptStatus(USCI_A1_BASE, USCI_A_UART_TRANSMIT_INTERRUPT_FLAG) ) { ; } // USCI_A_UART_resetDormant(USCI_A1_BASE); //Receive the data receivedData = USCI_A_UART_receiveData(USCI_A1_BASE); /* if(receivedData!=0x00) bspLedSet(BSP_LED_1); else bspLedSet(BSP_LED_2);*/ // Send data back "echo" USCI_A_UART_transmitData(USCI_A1_BASE, receivedData ); // USCI_A_UART_setDormant(USCI_A1_BASE); break; default: break; } } |
|
相关推荐
3个回答
|
|
程序没有注释,不好debug
|
|
|
|
大哥,,,你一个简单的430程序,,为什么非要一定搞得跟32库函数一样那么复杂呢?没有一点可读性
|
|
|
|
不要直接贴代码,这个我们在板块的提问指南说了。代码的话最好是以截图的方式传上来,看的会比较清晰一点,直接黏贴的话格式,高亮什么的都没了,看起来很累。
|
|
|
|
只有小组成员才能发言,加入小组>>
3035个成员聚集在这个小组
加入小组2930 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3606 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2343 浏览 1 评论
4807 浏览 1 评论
2573 浏览 1 评论
1331浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3607浏览 2评论
2930浏览 1评论
1517浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-1 14:39 , Processed in 1.339157 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号