OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 企业专区 » Renesas » 关于串口发送的问题

共4条 1/1 1 跳转至

关于串口发送的问题

高工
2012-08-27 15:13:18    评分
我用定时器设定每隔2s串口发送数据
可是发送的只有第一个和最后一个字符
怎么回事呢?



关键词: 关于     串口     发送     问题    

高工
2012-08-27 16:44:47    评分
2楼

自己算是解决了 
不喜欢瑞萨提供的串口发送函数
我是用查询方式实现发送数据的

实现定时器 每隔 1s发送一个数据

首先
// 定义一个串口发送状态的bit位
#define TSF10 (SSR10 & 0x40)

其次 
主函数
void  main(void)
{
 /* Start user code. Do not edit comment generated here */
    TAU0_Channel0_Start();
 STIF2 = 0;
 UART2_Start();
 while (1U)
 {
  
 
    if(timerflag == 1)
    {
     timerflag = 0;
     
   
   while(TSF10)
   {
      NOP();
   }
   
   UART2_SendData("T", 1);
   while(TSF10)
   {
      NOP();
   }
   
   UART2_SendData("e", 1);
   
   while(TSF10)
   {
      NOP();
   }
   
   UART2_SendData("m", 1);
   
   while(TSF10)
   {
      NOP();
   }
   
   UART2_SendData("p", 1);
   
   while(TSF10)
   {
      NOP();
   }   
   UART2_SendData(":", 1);
   
   while(TSF10)
   {
      NOP();
   } 
   UART2_SendData("\r", 1);
   
   while(TSF10)
   {
      NOP();
   } 
   UART2_SendData("\n", 1);
   
   while(TSF10)
   {
      NOP();
   }
    }
  else
   NOP();  // 貌似放个NOP 保险点 为什么呢?
 }
 /* End user code. Do not edit comment generated here */

截图:

虽然发送个 Temp 貌似代码就这么长 但是可以写成for 循环么

这样的话 我就可以用查询方式写putchar函数了 是不是还可以实现printf函数了呢??
我准备试试

补充个问题 
如何禁用发送中断呢?


PS 群上有人说要把字符串定义成全局的 目前还没试验


高工
2012-08-27 17:08:46    评分
3楼
补充 由于printf没有实现 自己写了个打印int型变量的函数
最后截图如下

谁的printf实现了的 麻烦分享下

助工
2012-08-27 17:44:05    评分
4楼

禁止发送中断,直接把发送的MK寄存器设置为1就OK了


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]