-
kankan
-
看看
-
led灯就是在count++后亮,就是在change++后就不亮看样子是没进入后面的程序
-
发个程序看看
-
用根线吧tx和rx接一起
-
楼至帖子不错,能帮我看一下我的问题吗
void Uart_Init(void)
{
P3SEL |= 0x30; // 选择P3.4和P3.5做UART通信端口
P3DIR = 0x10;
UCTL0|= SWRST; //开始设置串口
ME1 |= URXE0; // 使能USART0的发送和接受
U0CTL |= CHAR; // 选择8位字
UTCTL0 |= SSEL0; //选择模块时钟源 ; // UCLK = ACLK
UBR00 = 0xA3; // 波特率4800
UBR10 = 0x635750; //
UMCTL0 = 0x00; // Modulation
UCTL0 &= ~SWRST; //设置串口 完毕
IE1 |= URXIE0;
}
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
char ch;
IE1 &= ~URXIE0; //ES = 0;_DINT();
if((IFG1 & URXIFG0))
{
ch = RXBUF0;
if ((ch == '$') && (gps_flag == 0)) //如果收到字符'$',便开始接收
{
rev_start = 1;
rev_stop = 0;
}
rev_start = 1;
if (rev_start == 1) //标志位为1,开始接收
{
rev_buf[num++] =ch; //字符存到数组中
if (ch== '\n') //如果接收到换行
{
rev_buf[num] = '\0';
rev_start = 0;
rev_stop = 1;
gps_flag = 1;
num = 0;
}
}
}
IFG1&=~URXIFG0;
IE1 |= URXIE0; // _EINT();
}
就是好像进不去中断,总中断在主函数也开了,不知是啥原因
-
总中断开了这是串口这的,我在主函数中开了
-
只是串口的接收不发送,但设置的串口进不去咋回事?
void Uart_Init(void)
{
P3SEL |= 0x30; // 选择P3.4和P3.5做UART通信端口
P3DIR = 0x10;
UCTL0|= SWRST; //开始设置串口
ME1 |= URXE0; // 使能USART0的发送和接受
U0CTL |= CHAR; // 选择8位字
UTCTL0 |= SSEL0; //选择模块时钟源 ; // UCLK = ACLK
UBR00 = 0x06; // 波特率4800
UBR10 = 0x00; //
UMCTL0 = 0xFB; // Modulation
UCTL0 &= ~SWRST; //设置串口 完毕
IE1 |= URXIE0;
}
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
char ch;
IE1 &= ~URXIE0; //ES = 0;_DINT();
if((IFG1 & URXIFG0))
{
ch = RXBUF0;
if ((ch == '$') && (gps_flag == 0)) //如果收到字符'$',便开始接收
{
rev_start = 1;
rev_stop = 0;
}
rev_start = 1;
if (rev_start == 1) //标志位为1,开始接收
{
rev_buf[num++] =ch; //字符存到数组中
if (ch== '\n') //如果接收到换行
{
rev_buf[num] = '\0';
rev_start = 0;
rev_stop = 1;
gps_flag = 1;
num = 0;
}
}
}
IFG1&=~URXIFG0;
IE1 |= URXIE0; // _EINT();
}
-
改了哈是有问题
-
我用的430 f149 串口中断进不去咋办void Uart_Init(void)
{
P3SEL |= 0x30; // 选择P3.4和P3.5做UART通信端口
P3DIR = 0x10;
UCTL0|= SWRST; //开始设置串口
ME1 |= URXE0; // 使能USART0的发送和接受
U0CTL |= CHAR; // 选择8位字
UTCTL0 |= SSEL0; //选择模块时钟源 ; // UCLK = ACLK
UBR00 = 0x06; // 波特率4800
UBR10 = 0x00; //
UMCTL0 = 0xFB; // Modulation
UCTL0 &= ~SWRST; //设置串口 完毕
IE1 |= URXIE0;
}
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
char ch;
IE1 &= ~URXIE0; //ES = 0;_DINT();
if((IFG1 & URXIFG0))
{
ch = RXBUF0;
if ((ch == '$') && (gps_flag == 0)) //如果收到字符'$',便开始接收
{
rev_start = 1;
rev_stop = 0;
}
rev_start = 1;
if (rev_start == 1) //标志位为1,开始接收
{
rev_buf[num++] =ch; //字符存到数组中
if (ch== '\n') //如果接收到换行
{
rev_buf[num] = '\0';
rev_start = 0;
rev_stop = 1;
gps_flag = 1;
num = 0;
}
}
}
IFG1&=~URXIFG0;
IE1 |= URXIE0; // _EINT();
}
-
看一下是不是串口那初始化的问题?代码有没错误
-
好东西
-
问一下定时器中断,CCR0=CCIE是使能;
那么怎么算是关闭中断??
就像51中的 ETO=1;
ET0=0;
-
妈的忽悠我
-
咋回事啊
-
kankan
-
zaina
-
NVIC_EnableIRQ(UART_IRQn); 编译时下面函数报错啊
static __INLINE void NVIC_ableIRQ(IRQn_Type IRQn)
{
NVIC->ICER[0] = (1
-
NVIC_EnableIRQ(UART_IRQn);
NVIC_EnableIRQ(0);这时打开串口中断
NVIC_EnableIRQ(1);这是关闭串口中断支、这是不是就是五一中的ES
对吗??
LPC_USART->IER =1;这是打开接受中断
LPC_USART->IER =0;这是关闭,这话说是不是就是就是五一中的RI啊
对吗?
-
求说一下