-
这个好用 我调过了 /******************************************************
程序功能:接收来自PC机的字符,然后重新发送给PC机
-------------------------------------------------------
通信格式:N.8.1, 9600
无校验,8个数据位,1个停止位,波特率9600
------------------------------------------------------
测试说明:打开串口调试助手,正确设置通信格式,向学习板
发送一个字符,观察是否收到回发的字符,以及是否
正确
*******************************************************/
#include
/********************主函数********************/
void main(void)
{
/*下面六行程序关闭所有的IO口*/
P1DIR = 0XFF;P1OUT = 0XFF;
P2DIR = 0XFF;P2OUT = 0XFF;
P3DIR = 0XFF;P3OUT = 0XFF;
P4DIR = 0XFF;P4OUT = 0XFF;
P5DIR = 0XFF;P5OUT = 0XFF;
P6DIR = 0XFF;P6OUT = 0XFF;
WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
P6DIR |= BIT2;P6OUT |= BIT2; //关闭电平转换
P3SEL |= 0x30; // 选择P3.4和P3.5做UART通信端口
ME1 |= UTXE0 + URXE0; // 使能USART0的发送和接受
UCTL0 |= CHAR; // 选择8位字符
UTCTL0 |= SSEL0; // UCLK = ACLK
UBR00 = 0x03; // 波特率9600
UBR10 = 0x00; //
UMCTL0 = 0x4A; // Modulation
UCTL0 &= ~SWRST; // 初始化UART状态机
IE1 |= URXIE0; // 使能USART0的接收中断
while(1)
{
_EINT(); //打开全局中断
LPM1; //进入LPM1模式
while (!(IFG1 & UTXIFG0)); //等待以前的字符发送完毕
TXBUF0 = RXBUF0; //将收到的字符发送出去
}
}
/*******************************************
函数名称:UART0_RXISR
功 能:UART0的接收中断服务函数,在这里唤醒
CPU,使它退出低功耗模式
参 数:无
返回值 :无
********************************************/
#pragma vector = UART0RX_VECTOR
__interrupt void UART0_RXISR(void)
{
LPM1_EXIT; //退出低功耗模式
}
-
我再给你发个别的 这个库太多
-
/****************************************************
程序功能:MCU通过串口向PC机发送4X4键盘的键值
-----------------------------------------------------
通信格式:N.8.1, 9600
------------------------------------------------------
测试说明:打开串口调试助手,正确设置通信格式,按动4X4
键盘观察屏幕显示的按键键值。
****************************************************/
#include
#include "keypad.h"
#include "keypad.C"
//引用外部变量的声明
extern unsigned char key_Pressed;
extern unsigned char key_val;
extern unsigned char key_Flag;
void PutString(uchar *ptr);
void PutChar(uchar zifu);
/*******************主函数*******************/
void main(void)
{
/*下面六行程序关闭所有的IO口*/
P1DIR = 0XFF;P1OUT = 0XFF;
P2DIR = 0XFF;P2OUT = 0XFF;
P3DIR = 0XFF;P3OUT = 0XFF;
P4DIR = 0XFF;P4OUT = 0XFF;
P5DIR = 0XFF;P5OUT = 0XFF;
P6DIR = 0XFF;P6OUT = 0XFF;
uchar *tishi = "This Key's ID is:";
P6DIR |= BIT2;P6OUT |= BIT2; //关闭电平转换
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P3SEL |= 0x30; // P3.4,5 = USART0 TXD/RXD
ME1 |= UTXE0; // Enable USART0 TXD/RXD
UCTL0 |= CHAR; // 8-bit character
UTCTL0 |= SSEL0; // UCLK = ACLK
UBR00 = 0x03; // 32k/9600 - 3.41
UBR10 = 0x00; //
UMCTL0 = 0x4A; // Modulation
UCTL0 &= ~SWRST; // Initialize USART state machine
Init_Keypad(); //初始化键盘端口
while(1)
{
Key_Event();
if(key_Flag == 1)
{
key_Flag = 0;
PutString(tishi);
PutChar(key_val);
}
}
}
/*******************************************
函数名称:PutSting
功 能:向PC机发送字符串
参 数:ptr--指向发送字符串的指针
返回值 :无
********************************************/
void PutString(uchar *ptr)
{
while(*ptr != '\0')
{
while (!(IFG1 & UTXIFG0)); // TX缓存空闲?
TXBUF0 = *ptr++; // 发送数据
}
while (!(IFG1 & UTXIFG0));
TXBUF0 = '\n';
}
/*******************************************
函数名称:PutChar
功 能:向PC机发送一个字符对应的ASCII码
参 数:zifu--发送的字符
返回值 :无
********************************************/
void PutChar(uchar zifu)
{
while (!(IFG1 & UTXIFG0));
if(zifu > 9) //发送键值1~16对应的ASCII码
{
TXBUF0 = 0x30 + zifu/10;
while (!(IFG1 & UTXIFG0));
TXBUF0 = 0x30 + zifu%10;
}
else
{
TXBUF0 = 0x30 + zifu;
}
while (!(IFG1 & UTXIFG0));
TXBUF0 = '\n'; //发送回车字符
}
您试试这个 不过我的UART 1做SPI时候不好用 不知道为什么
-
各位大神请问我用430给553 控制伺服电机 问什么加上反馈以后会把产生PWM的管脚拉底啊
接上上拉电阻 频率就没法改变了
-
在那看啊
-
在那看啊
-
外边还用接上来电阻吗
-
大哥们 我直接粘过去了 我用的CCS 这三句有错在哪办
volatile unsigned int CCRx = 0;
#pragma vector=TIMER0_A1_VECTOR
__interrupt void TAIV_ISR(void){
-
加多大撒谎那个啦电阻啊 请教一下
-
谢谢 G 2553 能用吗
-
在那加啊
多多指教
-
可以 有很多芯片 L298n l6203 等等
-
你的波形是占空比不合适 你看看怎么调 占空比
-
是第一次用IAR吗 是不是没破解开啊
-
我是新手有完整的程序吗
谢谢
-
送的东西在哪啊 给我看看好吗
-
真的没有中文的 啊