凌阳科技大学计划论坛

首页 » 16位u'nSP平台技术讨论区 » 新手上路 » UART发送字符的问题
justone - 2007-11-2 17:13:00
*P_UART_Data发送需要一个unsigned int型变量,我现在要发送字符‘A’,该怎么做呢?是发送‘A’的ascii码值么?
why6bt - 2007-11-2 22:07:00
*P_UART_Data=0x65
justone - 2007-11-3 12:52:00
0x65是怎么来的?‘A’的ascii码值是0x41
蔡星 - 2007-11-3 14:01:00
这个看一下书就可以了
justone - 2007-11-3 14:11:00
看什么书?光盘的c编程看了无数遍了,就是翻着那个写的

还有个问题,羚羊的unsigned int 是16位,外部的信息都是按8位字节传递的,那么当给*P_UART_Data赋值 0x0041的时候,高8位怎么办?羚羊不发送高8位么?如果高8位也发送的话可就全错了,,

我现在就在看那个c编程,这些内容是在哪里?
justone - 2007-11-3 14:40:00
下面是我用查询方式发送字符串的代码,请高手看看有何毛病,,,

void func_d(void) //
{
    unsigned int i;
    unsigned int mdial[4]={0x41,0x42,0x43,0x44};
   
    *P_Watchdog_Clear = 0x01;
    for(i=0;i<4;i++)
    {
        while(1)
        {
            if( (*P_UART_Command2 & 0x0040)==1)
            {
                *P_UART_Data = mdial[i];
                break;
            }
        }
    }
   
}

void M_init(void)
{    //7RX入,,10TX出
    *P_IOB_Dir  |= 0x0400;    // 0000 0100 0000 0000 10out,
    *P_IOB_Dir  &= 0xe57f;    // 1110 0101 0111 1111 7,9,11,12in
    *P_IOB_Attrib|= 0x1c80;    // 0001 1100 1000 0000 下拉输入,同相输出,7,10置1
    *P_IOB_Attrib&= 0xffff;    // 1111 1111 1111 1111
    *P_IOB_Data  |= 0x0000;    // 0000 0000 0000 0000
    *P_IOB_Data  &= 0xfb7f;    // 1110 0001 0111 1111 7,10置0;
   
    *P_UART_Command1    =0x20;    //reset
    *P_UART_Command1    =0x00;   
    *P_UART_BaudScalarLow    =0x00;   
    *P_UART_BaudScalarHigh    =0x05;    //9600
    //0000 0000    //不采用中断方式
    *P_UART_Command1    =0x00;   
    //1100 0000    //输入输出使能
    *P_UART_Command2    =0xc0;   
}

int main()
{
delay();
M_init();
func_d;
}

能不能正确发送呢?我下载到板子上是毫无反应,,,请帮忙给看看,先谢谢了,,还有,相关内容在哪个书里?我好再找找看,,
蔡星 - 2007-11-5 3:36:00
一次只能发送8位
leajian - 2007-11-6 11:08:00
高8位是不会传输的。每次传输1个byte

另外,关于发送字符的问题,C语言可以这样写:

*P_UART_Data = 'A';

这样就省的自己去查“A”的ASCII码了
leajian - 2007-11-6 11:08:00
注意是单引号,不要写成双引号~~
justone - 2007-11-7 13:25:00
谢谢两位,已搞定
angel19861223 - 2008-11-16 23:14:00
顺便问下,如果发送字符串的话,用个字符数组就可以了吧?
 1 
查看完整版本: UART发送字符的问题