专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
TI
串口会出现乱码
2019-07-27 16:52
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
2400
19
1570
程序需要用到串口(和GSM模块通信用),程序得一直跑着,但是程序跑着跑着 串口就会出现乱码或者干脆串口死了,但是LCD显示什么的都正常
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
zwll
1楼-- · 2019-07-27 18:48
期间我也做了处理;程序里面 定时30分钟重新初始化串口
加载中...
chuxh
2楼-- · 2019-07-27 19:24
精彩回答 2 元偷偷看……
加载中...
zwll
3楼-- · 2019-07-27 21:38
430的串口和GSM模块的串口之间加了缓存,但是还是没用
加载中...
juventus9554
4楼-- · 2019-07-27 22:00
串口 初始化程序?
加载中...
zwll
5楼-- · 2019-07-28 00:06
U0CTL = SWRST;// Set the reset bit to hold inactive
if(Baudrate==9600)
{
#if UCLK==SMCLK_8M
UBR00 = 0x41; // 32k/2400 - 13.65
UBR10 = 0x03; // 32k/2400
UMCTL0 = 0x00; // modulation
UTCTL0 |= SSEL1+SSEL0; // UCLK = SMLK
#else
//程序 运行一段时间后(有时几天 有时个把月),那个串口就死了
UBR00 = 0x03; // 32k/9600 - 3.41
UBR10 = 0x00;
UMCTL0 = 0x4A;
UTCTL0 |= SSEL0; // UCLK = ACLK 选择ACLK,在LPM3.可激活
UTCTL0 &=~SSEL1;
#endif
}
else if(Baudrate==57600)
{
U0BR0 = 0x8A; // Prescale divisor = 0x008A
U0BR1 = 0x00;
U0MCTL = 0xFF; // Modulation 11111111
UTCTL0 |= SSEL1+SSEL0; // UCLK = SMLK
}
U0CTL = SWRST+CHAR; // P=none, 8 bits, 1 stop
U0RCTL = 0; // wake on all correct rx
ME1 |= URXE0 +UTXE0; // Enable the module
P2SEL |= 0x30; // P2.4,5 special function
P2DIR |= 0x10; // P2.4 TX output
P2DIR &= ~0x20; // P2.5 RX input
U0CTL &= ~SWRST; // Release the UART to operation
IE1 |= URXIE0; // RXINT enable
加载中...
司徒老鹰
6楼-- · 2019-07-28 01:06
检查程序 正常的话不用重新初始化串口
加载中...
1
2
3
4
下一页
一周热门
更多
>
相关问题
CPLD的方波输出
4 个回答
11个版本Quartus II 软件下载,安装包网盘合集,附教程,47G!
20 个回答
请大家帮忙到21IC发展大家谈支持我申请新版面
20 个回答
【通知】21ic中国电子网服务条款 (所有人员必读)
1 个回答
满载而归乙亥年,大展鸿途庚子年---集签赢好礼
20 个回答
携手ADI,踏上电子工程师之巅—车辆电气化视频,答题领奖!
1 个回答
如何提升论坛质量,看你了!
20 个回答
【最终名单】二姨家喊你来拿100份新年大礼啦~
20 个回答
相关文章
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
TI
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
if(Baudrate==9600)
{
#if UCLK==SMCLK_8M
UBR00 = 0x41; // 32k/2400 - 13.65
UBR10 = 0x03; // 32k/2400
UMCTL0 = 0x00; // modulation
UTCTL0 |= SSEL1+SSEL0; // UCLK = SMLK
#else
//程序 运行一段时间后(有时几天 有时个把月),那个串口就死了
UBR00 = 0x03; // 32k/9600 - 3.41
UBR10 = 0x00;
UMCTL0 = 0x4A;
UTCTL0 |= SSEL0; // UCLK = ACLK 选择ACLK,在LPM3.可激活
UTCTL0 &=~SSEL1;
#endif
}
else if(Baudrate==57600)
{
U0BR0 = 0x8A; // Prescale divisor = 0x008A
U0BR1 = 0x00;
U0MCTL = 0xFF; // Modulation 11111111
UTCTL0 |= SSEL1+SSEL0; // UCLK = SMLK
}
U0CTL = SWRST+CHAR; // P=none, 8 bits, 1 stop
U0RCTL = 0; // wake on all correct rx
ME1 |= URXE0 +UTXE0; // Enable the module
P2SEL |= 0x30; // P2.4,5 special function
P2DIR |= 0x10; // P2.4 TX output
P2DIR &= ~0x20; // P2.5 RX input
U0CTL &= ~SWRST; // Release the UART to operation
IE1 |= URXIE0; // RXINT enable
一周热门 更多>