QwenCandy 2017-03-11 10:34 采纳率: 0%
浏览 937

运行时端口没有数据,应该是int转string的问题,求各路大神指教啊!

//int转string:

char *hex2char(unsigned int val)
{
char str[5];
char *s;

s = str;

str[0] = val/1000+ '0';
str[1] = (val/100)%10+ '0';
str[2] = (val/10)%10+ '0';
str[3] = val%10+ '0';
str[4] = '/';

return s;

}

//UART初始化
void Uart_Init(void)
{
rGPACON=(rGPACON&~(0xff<<0))|(0x22<<0);//A口设置为UART
rGPAPUD=(rGPAPUD&~(0xff<<0))|(0x1<<0);//A口允许下拉
rULCON0=0x03;//设置传输帧格式
rUCON0=(0<<10)|(1<<9)|(1<<8)|(0<<7)|(0<<6)|(0<<5)|(0<<4)|(1<<2)|(1<<0);//设置访问方式
rUMCON0=0x00;//屏蔽Medom
rUBRDIV0=35;//设置波特率
rUDIVSLOT0=0x80;
}

//传输数据
void Uart_SentByte(char data)
{
while(!(rUTRSTAT0&0x2))
;//等待发送缓冲器空
Delay();
rUTXH0=data;//向发送缓冲器写入数据
}
//发送字符串!
void Uart_SentString(char *s)
{
while(*s)
Uart_SentByte(*s++);
}
//main函数
int main(void)
{
// Port_Init();//端口设置函数调用
Uart_Init();//UART设置函数调用
Uart_SentByte('b');
Uart_SentString(hex2char(26));//发送字符串
}

程序如上,运行Uart_SentString(“hello,world”);串口是能打印的,所以觉得不是串口的问题,问题应该是出在int转string的部分,求各路大神指点一下!!!

  • 写回答

1条回答 默认 最新

  • 坤昱 《一起学习C语言》专栏作者 2017-03-11 12:53
    关注

    在转换int的地方打个断点看下是否有数据 或者用atoi转到int类型 ,我空间有atoi的代码实现

    评论

报告相同问题?

悬赏问题

  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?