lpc2378运行finsh,直接运行只显示"finsh>",单步运行显示“finsh&a
初始化代码void rt_hw_console_init()
{
/* Enable RxD and TxD pins */
PINSEL0 |= U0PINS;
SCS|=0x01;
/* 8 bits, no Parity, 1 Stop bit */
U0LCR = 0x83;
FIO0DIR |= RS485_CON; //P0.6为输出
FIO0CLR |= RS485_CON; //接收状态
/* Setup Baudrate */
U0DLL = (PCLK/16/BAUD_RATE) & 0xFF;
U0DLM = ((PCLK/16/BAUD_RATE) >> 8) & 0xFF;
/* DLAB = 0 */
U0LCR = 0x03;
}
输出代码
void rt_hw_console_output(const char* str)
{
FIO0SET |= RS485_CON; // 发送状态
while (*str)
{
if (*str=='\n')
{
while (!(U0LSR & 0x40));
U0THR = '\r';
}
while (!(U0LSR & 0x40));
U0THR = *str;
str ++;
}
FIO0CLR |= RS485_CON; // 接收状态
} 我想我找到原因了,因为我是485收发,最后一个字符发送后,需要等待发送结束才能把收发控制引脚改为接收 输出代码
void rt_hw_console_output(const char* str)
{
FIO0SET |= RS485_CON; // 发送状态
while (*str)
{
if (*str=='\n')
{
while (!(U0LSR & 0x40));
U0THR = '\r';
}
while (!(U0LSR & 0x40));
U0THR = *str;
str ++;
}
while (!(U0LSR & 0x40));
FIO0CLR |= RS485_CON; // 接收状态
}
代码修改如上后,输入指令的反馈显示正常
但是每次按键的echo不正常
还要我已经发了很多贴了为什么是等待审核?
因为我是菜鸟发的贴没价值吗? 发现echo的字符当中是包含正确的字符的,于是调试发现
在禁用finsh和device后,即理论上能调用输出的只有console的output
启动运行显示logo正常
之后每按一个键会返回一个莫名的值,但是是固定的
比如按o一定返回H,按c返回N
在rt_hw_console_output中设置了断点,但是按键后有值返回却没有在断点停下,是为什么呢
页:
[1]