紧急求解,新手问题,怎么从P0.6口读数据!
zigbee吧
全部回复
仅看楼主
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
level 1
这是传感器,每20ms自己向端口发数据。
2016年04月25日 01点04分 4
level 7
串口最低的波特率貌似是9600,你这个比较麻烦
2016年04月25日 10点04分 5
波特率好像能调到2400,根据手册,U0GCR |= 6; U0BAUD |= 59; 这两个设置就能设置波特率到2400
2016年04月25日 12点04分
@走失的小破孩 你确定RxBuf不是基本是0xFF?
2016年04月25日 13点04分
1