打印
[技术问答]

M058SSAN板子串口的问题

[复制链接]
1703|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没供电。 ...

汗,这也可以

使用特权

评论回复
5
gaoyang9992006| | 2014-6-23 12:06 | 只看该作者
楼主太有才了,这种问题都能发现,给力,哈哈,下次弄电路时候看清楚腿啊,别扯错地方了。到时候在程序里找原因,肯定累死找不到。

使用特权

评论回复
6
mintspring| | 2014-8-18 20:06 | 只看该作者
哈哈,腿都没找到,这个洞都找不到,很正常。:lol打个比喻

使用特权

评论回复
7
HORSE7812| | 2014-11-6 10:24 | 只看该作者
:)

使用特权

评论回复
8
wlhnqwnjz| | 2014-11-13 10:25 | 只看该作者
楼主:M058LBN用什么板子开发?

使用特权

评论回复
9
wangch_sh|  楼主 | 2014-11-13 11:01 | 只看该作者
新塘送的板子。

使用特权

评论回复
10
zxf0168| | 2014-11-14 11:35 | 只看该作者
楼主好有才

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

318

主题

2814

帖子

5

粉丝