[技术问答] M058SSAN板子串口的问题

[复制链接]
2497|11
 楼主| wangch_sh 发表于 2014-6-22 17:34 | 显示全部楼层 |阅读模式
我用M058SSAN板子做串口实验,发送数据,发现有问题。
发送0x55是对的,发送0xaa时,第一个数据是0xab,后面的都是0x15.
请高手指教,怎么解决?谢谢!
附程序:
#include"SmartM_M0.h"
VOID UartInit1(UINT32 unFosc,UINT32 unBaud)
{
P3_MFP&=~(P31_TXD0|P30_RXD0);
P3_MFP|=(TXD0|RXD0);   //P3.0使能为串口0接收引脚
         //P3.1使能为串口0发送引脚
UART0_Clock_EN;     //串口0时钟使能
UARTClkSource_ex12MHZ;   //串口时钟选择为外部晶振
CLKDIV&=~(15<<8);    //串口时钟分频为0
IPRSTC2|=UART0_RST;    //复位串口0
IPRSTC2&=~UART0_RST;   //复位结束
UA0_FCR|=TX_RST;    //发送FIFO复位
UA0_FCR|=RX_RST;    //接收FIFO复位
UA0_LCR&=~PBE;     //校验位功能取消
UA0_LCR&=~WLS;
UA0_LCR|=WL_8BIT;    //8位数据位
UA0_LCR&=NSB_ONE;    //1位停止位
UA0_BAUD|=DIV_X_EN|DIV_X_ONE; //设置波特率分频
UA0_BAUD|=((unFosc/unBaud)-2);  //波特率设置UART_CLK/(A+2)=115200bps
}
VOID UartSend(UINT8 *pBuf,UINT32 unNumOfBytes)
{
UINT32 i;
for(i=0;i<unNumOfBytes;i++)
{
  UA0_THR=*(pBuf+i);
  while((UA0_FSR&TX_EMPTY)!=0X00);  //检查发送FIFO是否为空
}
}
INT32 main(VOID)
{
UINT32  i;
UINT8    j,send[1];
PROTECT_REG         //ISP下载是保护FLASH存储器
(
  PWRCON|=XTL12M_EN;      //默认时钟源为外部晶振
  while((CLKSTATUS&XTL12M_STB)==0);  //等待12MHz时钟稳定
  CLKSEL0=(CLKSEL0&(~HCLK))|HCLK_12M; //设置外部晶振为系统时钟
)
UartInit1(12000000,9600);    //波特率设置为9600bit/s
send[0]=0;
while(1)
{
  j=0;
           //发送数据0~255
  //for(i=0;i<256;i++)
  //{
   //UartSend(&j,1);
   //j++;
   //UartSend(&send[0],1);
   /*UA0_THR=0x55;
   while((UA0_FSR&TX_EMPTY)!=0X00);  //检查发送FIFO是否为空
   send[0]++;
   Delayms(500);*/
   UA0_THR=0xaa;
   while((UA0_FSR&TX_EMPTY)!=0X00);  //检查发送FIFO是否为空
   send[0]++;
   Delayms(500);
  //}
}
}

 楼主| wangch_sh 发表于 2014-6-22 17:49 | 显示全部楼层
发现规律了。
发送          串口调试软件收到
0X01                  0X7F
0X02                 0X3F
0X04                0X1F
0X08                 0X0F
0X10                     0X07
0X20                      0X03
0X40                        0X01
0X80                     0X00
 楼主| wangch_sh 发表于 2014-6-22 21:07 | 显示全部楼层
搞好啦,我是用M058S的TXD腿和RXD、地线接到另一个板子上的串口上,MAX3232没供电。
kekeke 发表于 2014-6-23 08:03 | 显示全部楼层
wangch_sh 发表于 2014-6-22 21:07
搞好啦,我是用M058S的TXD腿和RXD、地线接到另一个板子上的串口上,MAX3232没供电。 ...

汗,这也可以
gaoyang9992006 发表于 2014-6-23 12:06 | 显示全部楼层
楼主太有才了,这种问题都能发现,给力,哈哈,下次弄电路时候看清楚腿啊,别扯错地方了。到时候在程序里找原因,肯定累死找不到。
mintspring 发表于 2014-8-18 20:06 | 显示全部楼层
哈哈,腿都没找到,这个洞都找不到,很正常。:lol打个比喻
HORSE7812 发表于 2014-11-6 10:24 | 显示全部楼层
wlhnqwnjz 发表于 2014-11-13 10:25 | 显示全部楼层
楼主:M058LBN用什么板子开发?
 楼主| wangch_sh 发表于 2014-11-13 11:01 | 显示全部楼层
新塘送的板子。
zxf0168 发表于 2014-11-14 11:35 | 显示全部楼层
楼主好有才
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

318

主题

2817

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部