完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
/*--------------------------------------------
程序功能:通过UART1接收外部数据放到数组中, 通过UART0将数组内数据发送到PC机, 配置串口助手接收数据。 通信格式:N.8.1 9600 无校验,8个数据位,1个停止位,波特率9600 ------------------------------------------------*/ #include #define uchar unsigned char #define uint unsigned int void Delays(void); uchar REDATA = 0; //初始化数组值为0 /*-------------主函数-------------------------*/ void main(void) { // uchar REDATA = 0; //初始化数组值为0 WDTCTL = WDTPW + WDTHOLD; P3SEL |= 0xF0; //选择P3.4和P3.5做uart0通信端口,P3.6和P3.7做uart1通信端口 //uart0作为发送数据到PC内部寄存器配置 ME1 |= UTXE0; // 使能USART0的发送 UCTL0 |= CHAR; // 选择8位字符 UTCTL0 |= SSEL0; // UCLK = ACLK UBR00 = 0x03; // 波特率9600 UBR10 = 0x00; // UMCTL0 = 0x4A; // Modulation UCTL0 &= ~SWRST; // 初始化UART状态机 //uart1作为接收CPLD数据的内部寄存器配置 ME2 |= URXE1; // 使能USART1的接收 UCTL1 |= CHAR; // 选择8位字符 UTCTL1 |= SSEL0; // UCLK = ACLK UBR01 = 0x03; // 波特率9600 UBR11 = 0x00; // UMCTL1 = 0x4A; // Modulation UCTL1 &= ~SWRST; // 初始化UART状态机 IE2 |= URXIE1; // 使能USART1的接收中断 while(1) { _EINT(); //打开全局中断 LPM1; //进入LPM1模式 // while(!(IFG2 & URXIFG1)) //等待以前的字符接收完毕 // REDATA = RXBUF1; //将接收数据放在数组中 // Delays(); // while(!(IFG1 & UTXIFG0)) //等待以前的字符发送完毕 // TXBUF0 = REDATA; //将数组中的数据发送到PC机上 } } /******************************************* 函数名称:UART1_RXISR 功 能:UART1的接收中断服务函数,在这里唤醒 CPU,使它退出低功耗模式 参 数:无 返回值 :无 ********************************************/ #pragma vector = UART1RX_VECTOR __interrupt void UART1_RXISR(void) { LPM1_EXIT; //退出低功耗模式 while(!(IFG2 & URXIFG1)) //等待以前的字符接收完毕 REDATA = RXBUF1; TXBUF0 = REDATA; //将数组中的数据发送到PC机上 } 这是程序 |
|
|
|
/*--------------------------------------------
程序功能:通过UART1接收外部数据放到数组中, 通过UART0将数组内数据发送到PC机, 配置串口助手接收数据。 通信格式:N.8.1 9600 无校验,8个数据位,1个停止位,波特率9600 ------------------------------------------------*/ #include #define uchar unsigned char #define uint unsigned int void Delays(void); uchar REDATA = 0; //初始化数组值为0 /*-------------主函数-------------------------*/ void main(void) { // uchar REDATA = 0; //初始化数组值为0 WDTCTL = WDTPW + WDTHOLD; P3SEL |= 0xF0; //选择P3.4和P3.5做uart0通信端口,P3.6和P3.7做uart1通信端口 //uart0作为发送数据到PC内部寄存器配置 ME1 |= UTXE0; // 使能USART0的发送 UCTL0 |= CHAR; // 选择8位字符 UTCTL0 |= SSEL0; // UCLK = ACLK UBR00 = 0x03; // 波特率9600 UBR10 = 0x00; // UMCTL0 = 0x4A; // Modulation UCTL0 &= ~SWRST; // 初始化UART状态机 //uart1作为接收CPLD数据的内部寄存器配置 ME2 |= URXE1; // 使能USART1的接收 UCTL1 |= CHAR; // 选择8位字符 UTCTL1 |= SSEL0; // UCLK = ACLK UBR01 = 0x03; // 波特率9600 UBR11 = 0x00; // UMCTL1 = 0x4A; // Modulation UCTL1 &= ~SWRST; // 初始化UART状态机 IE2 |= URXIE1; // 使能USART1的接收中断 while(1) { _EINT(); //打开全局中断 LPM1; //进入LPM1模式 // while(!(IFG2 & URXIFG1)) //等待以前的字符接收完毕 // REDATA = RXBUF1; //将接收数据放在数组中 // Delays(); // while(!(IFG1 & UTXIFG0)) //等待以前的字符发送完毕 // TXBUF0 = REDATA; //将数组中的数据发送到PC机上 } } /******************************************* 函数名称:UART1_RXISR 功 能:UART1的接收中断服务函数,在这里唤醒 CPU,使它退出低功耗模式 参 数:无 返回值 :无 ********************************************/ #pragma vector = UART1RX_VECTOR __interrupt void UART1_RXISR(void) { LPM1_EXIT; //退出低功耗模式 while(!(IFG2 & URXIFG1)) //等待以前的字符接收完毕 REDATA = RXBUF1; TXBUF0 = REDATA; //将数组中的数据发送到PC机上 } |
|
|
|
very good,thanks
|
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
669 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
597 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1048 浏览 1 评论
731 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
520 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
158浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
120浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
123浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
122浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
164浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 19:13 , Processed in 0.867037 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号