level 1
做了一个pm2.5检测的题目,用GP2Y1051AU0F粉尘传感器,传感器一直往P0.6口送数据,可是死活读不出来!
2016年04月25日 01点04分
1
level 1
void InitUart(void)
{
PERCFG = 0x00; //外设控制寄存器 USART 0的IO位置:0为P0口位置1
P0SEL = 0xbf; //P0.6用作串口//P0SEL = 0xbf; //P
P0SEL &= ~0x40; //设置P0.6为普通IO口
P0DIR &= ~0x40; //P0.6定义为输入口
P2DIR &= ~0XC0; //P0优先作为UART0
U0CSR |= 0x80; //设置为UART方式
U0GCR |= 6;
U0BAUD |= 59; //波特率设为2400
UTX0IF = 0; //UART0 TX中断标志初始置位0
U0CSR |= 0x40; //允许接收
IEN0 |= 0x84; //开总中断允许接收中断
}
2016年04月25日 01点04分
2
level 1
****************************************************************************
* 名 称: UART0_ISR(void) 串口中断处理函数
* 描 述: 当串口0产生接收中断,将收到的数据保存在RxBuf中
****************************************************************************/
#pragma vector = URX0_VECTOR
__interrupt void UART0_ISR(void)
{
URX0IF = 0; // 清中断标志
RxBuf = U0DBUF;
}
接下来从RxBuf 中把数据读出来应该就可以了,怎么就不来呢?
2016年04月25日 01点04分
3