void main(void) { /* Initialize CSL library - This is REQUIRED !!! */ /*初始化CSL库*/ CSL_init(); /*设置系统的运行速度为144MHz*/ PLL_config(&myConfig); /*初始化McBSP1*/ hMcbsp = MCBSP_open(MCBSP_PORT1,MCBSP_OPEN_RESET); /*设置McBSP1*/ MCBSP_config(hMcbsp,&Mcbsp1Config); MCBSP_getConfig(hMcbsp,&Mcbsptest); settimer(); /*************************以下程序实现软件Uart************************/ /* 参考:HX-5509A 开发板使用手册 */ while(TRUE) { if(uart_recflag==1) { uart_recflag = 0; if(uart_sendflag==0) { uart_bitsendcnt = 0; uart_sendend = 0; uart_sendcnten = 0; uart_bitsend = 0; uart_send = 0x41; uart_sendflag = 1; uart_sendbitcnt = 0; } } }; } interrupt void timer0Isr(void) { temp = REG_PCR1; //Send if(uart_sendflag==1) { if(uart_sendcnten==0) { REG_PCR1 &= 0xffdf; uart_bitsend = 1; uart_sendcnten = 1; } if(uart_sendcnten==1) { uart_bitsendcnt++; if(uart_bitsendcnt==10) { uart_sendbitcnt++; if(uart_sendend==1) { uart_sendflag = 0; } else { if(uart_sendbitcnt<9) { if((uart_send & uart_bitsend)==0) { REG_PCR1 &= 0xffdf; } else { REG_PCR1 |= 0x0020; } uart_bitsend <<= 1; } else { REG_PCR1 |= 0x0020; uart_sendflag = 0; } } uart_bitsendcnt = 0; } } } //Receive if((uart_bitcnt==0)&&(uart_recstart==0)) { if((temp&0x0010)==0) { timer0_cnt = 0; timer0_cnten = 1; uart_bitscan = 0; uart_rec = 0; uart_recstart = 1; } } if(timer0_cnten==1) { timer0_cnt++; if((temp&0x0010)!=0) { uart_bitscan++; } if(timer0_cnt==10) { timer0_cnt = 0; if(uart_bitscan>5) { switch(uart_bitcnt) { case 0: uart_rec = 0; timer0_cnten = 0; uart_recstart = 0; break; case 1: uart_bitcnt++; uart_rec |= 0x01; break; case 2: uart_bitcnt++; uart_rec |= 0x02; break; case 3: uart_bitcnt++; uart_rec |= 0x04; break; case 4: uart_bitcnt++; uart_rec |= 0x08; break; case 5: uart_bitcnt++; uart_rec |= 0x10; break; case 6: uart_bitcnt++; uart_rec |= 0x20; break; case 7: uart_bitcnt++; uart_rec |= 0x40; break; case 8: uart_bitcnt++; uart_rec |= 0x80; break; case 9: uart_bitcnt = 0; timer0_cnten = 0; uart_recflag = 1; uart_recstart = 0; break; default: break; } } else { uart_bitcnt++; if(uart_bitcnt>9) { uart_bitcnt = 0; timer0_cnten = 0; } } uart_bitscan = 0; } } }
举报
zhangmangui 发表于 2013-11-8 16:45 将McBSP配置为串口 你的代码有些乱 没看出头绪 先看看这本书 https://bbs.21ic.com/icview-633042- ...
work67 发表于 2013-11-8 17:00 谢谢,这个是网上下的程序,是挺乱的,而且发数据也是在中断里面,搞得我很混乱。不过功能是实现了发送接 ...
zhangmangui 发表于 2013-11-8 22:49 慢慢来 加油
work67 发表于 2013-11-11 14:26
zhangmangui 发表于 2013-11-11 23:54 我也在学习5509 多多交流
yangmm11 发表于 2014-10-14 16:12 对于这个程序中的一些步骤,我也有不明白的地方,第37行的程序temp = REG_PCR1;中,temp为REG_PCR1中的值 ...
zhangmangui 发表于 2014-10-14 23:52 他这种配置应该只能一次发送一位 要先熟悉UART的原理 相当预计GPIO模拟采集的吧 你看看 有专门讲解的视 ...
yangmm11 发表于 2014-10-15 08:59 你说的视频时5509A中的UART通信实验的视频吗?我就是参考UART通信试验中的McBSP配置和软件模拟异步通信这 ...
yangmm11 发表于 2014-10-15 10:08 gpio模式没找到
zhangmangui 发表于 2014-10-15 22:12 您好 这个链接中有很多资料 请查看 有相关视频 https://bbs.21ic.com/icview-689506-1-1.html
您需要 登录 才可以下载或查看,没有账号?注册
yangmm11 发表于 2014-10-16 15:26 比如上面的例子中,case的结果分别是uart_rec的每一位“或”之后的结果,那uart_rec的值从程序中可以看 ...
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
人才类勋章
时间类勋章
发帖类勋章
等级类勋章
17
65
2
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号