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
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;
}
能不能正确发送呢?我下载到板子上是毫无反应,,,请帮忙给看看,先谢谢了,,还有,相关内容在哪个书里?我好再找找看,,
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
顺便问下,如果发送字符串的话,用个字符数组就可以了吧?