社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 8766|回复: 38

[讨论] 【C2000 LaunchPad】UART作为调试监视

[复制链接]

1万

TA的帖子

33

TA的资源

版主

Rank: 6Rank: 6

发表于 2012-11-29 15:45:16 | 显示全部楼层 |阅读模式
uart作为调试监视
c2000 LaunchPad带的V2版仿真器,不仅有仿真调试功能,也有串口----UART功能,
在调试时,使用它的UART来监视CPU的运行情况也是一个很好的办法。
F28027UART输出字符,可以使用自己编制的函数,也可以使用通用的printf函数;
使用printf时,需要修改CMD文件等(以后另作讨论),比较麻烦。TI关于printf使用的说明 http://processors.wiki.ti.com/index.php/Tips_for_using_printf#Hello.2C_world.21,需要时可以参阅。
这里仅使用uart_sendstring函数完成。
C28 CPUSCI具有强大的功能,可以自动检测波特率、可以多处理器通讯等
一、UART设置
1、端口功能设置InitSciaGpio()
在主程序中加入InitSciaGpio()语句。这个函数使用TI提供的,不作任何修改。
2SCI寄存器设置scia_fifo_init()
c1.jpg
关于波特率,给了个公式:
      BRR = LSPclk / ( Baud * 8 ) – 1
15 MHzLSPCLK时,只有300600的波率时计算出的BRR没有小数。LSPCLK时钟是
InitPeripheralClocks()函数中设置的:
Sysctrlregs.LOSPCP.all = 0x0002;
一般不建议对它作修改。
TI给出了几个计算值及误差,如下表:
LSPCLK Clock Frequency, 15 MHz
Ideal Baud
BRR
Actual Baud
% Error
2400
780(30Ch)
0.03
4800
390(186h)
4795
-0.10
9600
194(C2h)
9615
0.16
19200
97(61h)
19133
-0.35
38400
48(30h)
38265
-0.35
经实验,115200波特率下,发送字符可以在电脑上正常接收。
二、查询方式的数据发送
void scia_xmit(int a)
{
    while (Sciaregs.SCIFFTX.bit.TXFFST != 0) {}
    SciaRegs.SCITXBUF=a;
}
void uart_sendstring(char * ch)
{
    Uint16 i = 0;
    while(ch != '\0')
    {
        scia_xmit(ch);
        i++;
    }
}
三、使用结果
在主函数中加入:
uart_sendstring(“EEWorld\n”);
得:
c2.jpg
此帖出自TI C2000论坛

点评

我的例程传到10楼了。 [ 本帖最后由 dontium 于 2012-12-5 12:17 编辑 ]  详情 回复 发表于 2012-12-5 12:15


回复

使用道具 举报

1万

TA的帖子

33

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2012-11-29 15:45:56 | 显示全部楼层
UART作为调试监视.pdf (158.77 KB, 下载次数: 404)


回复

使用道具 举报

3360

TA的帖子

422

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

发表于 2012-11-29 18:03:03 | 显示全部楼层
赶紧学习!
请问32位的该怎么学习编程呢?


回复

使用道具 举报

190

TA的帖子

24

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2012-11-30 11:40:31 | 显示全部楼层
不错不错,用板子实验一下 跟着dontinum学习


回复

使用道具 举报

3705

TA的帖子

0

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

荣誉会员勋章

发表于 2012-11-30 17:19:42 | 显示全部楼层
还没有仔细去check ,先设个精华,有空跟着楼主学习。

点评

谢谢。 你是这个版块的版主。能得到版主的认同,很高兴。  详情 回复 发表于 2012-11-30 20:58
工程 = 数学+物理+经济


回复

使用道具 举报

1万

TA的帖子

33

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2012-11-30 20:58:11 | 显示全部楼层

回复 5楼 安_然 的帖子

谢谢。
你是这个版块的版主。能得到版主的认同,很高兴。


回复

使用道具 举报

3423

TA的帖子

5

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

发表于 2012-12-4 22:49:27 | 显示全部楼层
跟着DON学习。
个人淘宝店:https://viiot.taobao.com/Q群243090717
主营:zigbee,蓝牙,w5100,zigbee usbdongle等电子产品


回复

使用道具 举报

251

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2012-12-5 12:00:17 | 显示全部楼层
按照楼主的试验了一下。没成功,收到的是乱码,是因为波特率的问题吗

点评

很可能是波特率问题,但也不排除设置问题。 你可以看看TI文档的说明。波特率在300及600时,误差为0。 在我的电脑上,使用115200时,虽然它的误差很大,但接收字符正常, 你可以多试一下其它的波特率,或者上位  详情 回复 发表于 2012-12-5 12:09


回复

使用道具 举报

1万

TA的帖子

33

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2012-12-5 12:09:39 | 显示全部楼层

回复 8楼 luooove 的帖子

很可能是波特率问题,但也不排除设置问题。
你可以看看TI文档的说明。波特率在300及600时,误差为0。
在我的电脑上,使用115200时,虽然它的误差很大,但接收字符正常,

你可以多试一下其它的波特率,或者上位机软件中的波特率改一下看看。


回复

使用道具 举报

1万

TA的帖子

33

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2012-12-5 12:15:47 | 显示全部楼层

回复 楼主 dontium 的帖子

我的例程传到10楼了。

F28027_PWM.rar (188.59 KB, 下载次数: 191)


回复

使用道具 举报

40

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2012-12-5 15:16:24 | 显示全部楼层
我的串口调试软件为什么不能换行,加了\n

点评

可以用HEX的方式显示一下,看看到底收到了‘\\n \' 这个字符了没有。 有时候很可能是上位机问题。  详情 回复 发表于 2012-12-5 15:24


回复

使用道具 举报

1万

TA的帖子

33

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2012-12-5 15:24:35 | 显示全部楼层

回复 11楼 jianghehupo 的帖子

可以用HEX的方式显示一下,看看到底收到了‘\n ' 这个字符了没有。

有时候很可能是上位机问题。


回复

使用道具 举报

40

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2012-12-5 15:48:26 | 显示全部楼层
肯定受到了,用文本方式直接显示“\n”,看到你用的是sscom,我试了一下也不行

点评

既然换行字符收到了,不换行应该是上位机的问题。 你将两个字符都加上: \\n\\r 看这样看行不行 [ 本帖最后由 dontium 于 2012-12-5 16:07 编辑 ]  详情 回复 发表于 2012-12-5 16:00


回复

使用道具 举报

1万

TA的帖子

33

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2012-12-5 16:00:26 | 显示全部楼层

回复 13楼 jianghehupo 的帖子

既然换行字符收到了,不换行应该是上位机的问题。

你将两个字符都加上:

\n\r

看这样看行不行

[ 本帖最后由 dontium 于 2012-12-5 16:07 编辑 ]


回复

使用道具 举报

373

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2012-12-11 19:38:20 | 显示全部楼层

顶楼主啊

绝对牛的楼主啊


回复

使用道具 举报

373

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2012-12-11 19:41:48 | 显示全部楼层
顶啊

[ 本帖最后由 wudayongnb 于 2012-12-11 20:00 编辑 ]


回复

使用道具 举报

373

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2012-12-11 20:51:48 | 显示全部楼层
今天上午,怎么调都不成功,晚上程序也没怎么变,居然成功了,不知道怎么回事

点评

我也发现使用CCS时,有时候需要重启,有时候需要clean一下。  详情 回复 发表于 2013-1-17 12:06


回复

使用道具 举报

6653

TA的帖子

176

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2013-1-17 10:54:10 | 显示全部楼层
请教一下版主
为什么查询方式的数据发送
主函数里去掉
        PieCtrlRegs.PIEIER9.bit.INTx1 = 1;                // SCI RX interrupt
        PieCtrlRegs.PIEIER9.bit.INTx2 = 1;                // SCI TX interrupt
就不能运行了呢

点评

因为发送时,是在中断函数里做的。接收中断的那个还没有搞好,只是预留在那里。  详情 回复 发表于 2013-1-17 12:08


回复

使用道具 举报

1万

TA的帖子

33

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2013-1-17 12:06:52 | 显示全部楼层

回复 17楼 wudayongnb 的帖子

我也发现使用CCS时,有时候需要重启,有时候需要clean一下。


回复

使用道具 举报

1万

TA的帖子

33

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2013-1-17 12:08:42 | 显示全部楼层

回复 18楼 常见泽1 的帖子

因为发送时,是在中断函数里做的。接收中断的那个还没有搞好,只是预留在那里。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-11-19 14:36 , Processed in 0.688183 second(s), 18 queries , Redis On.

快速回复 返回顶部 返回列表