Matlab论坛
直播中

李仁志

12年用户 32经验值
擅长:模拟技术
私信 关注
[经验]

matlab实现串口通信(与xs128)程序测试!

xs128程序示例!
  1. #include       /* common defines and macros */
  2. #include "derivative.h"      /* derivative-specific definitions */

  3. #define LEDCPU PORTK_PK4
  4. #define LEDCPU_dir DDRK_DDRK4
  5. #define LED_ON 0
  6. #define LED_OFF 1
  7. #define BUS_CLOCK                   32000000           //总线频率
  8. #define OSC_CLOCK                   16000000           //晶振频率
  9. #define BAUD 9600                    //串口波特率

  10. unsigned char putstring[]="123";

  11. /*************************************************************/
  12. /*                      初始化锁相环                         */
  13. /*************************************************************/
  14. void INIT_PLL(void)
  15. {
  16.     CLKSEL &= 0x7f;       //set OSCCLK as sysclk
  17.     PLLCTL &= 0x8F;       //Disable PLL circuit
  18.     CRGINT &= 0xDF;
  19.    
  20.     #if(BUS_CLOCK == 40000000)
  21.       SYNR = 0x44;
  22.     #elif(BUS_CLOCK == 32000000)
  23.       SYNR = 0x43;     
  24.     #elif(BUS_CLOCK == 24000000)
  25.       SYNR = 0x42;
  26.     #endif

  27.     REFDV = 0x81;         //PLLCLK=2×OSCCLK×(SYNR+1)/(REFDV+1)=64MHz ,fbus=32M
  28.     PLLCTL =PLLCTL|0x70;  //Enable PLL circuit
  29.     asm NOP;
  30.     asm NOP;
  31.     while(!(CRGFLG&0x08)); //PLLCLK is Locked already
  32.     CLKSEL |= 0x80;        //set PLLCLK as sysclk
  33. }

  34. /*************************************************************/
  35. /*                        初始化SCI                          */
  36. /*************************************************************/
  37. void INIT_SCI(void)
  38. {

  39.   SCI0BD = BUS_CLOCK/16/BAUD;   //设置SCI0波特率为9600
  40.   SCI0CR1 = 0x00;       //设置SCI0为正常模式,八位数据位,无奇偶校验
  41.   SCI0CR2 = 0x0c;       //允许发送数据,禁止中断功能
  42. }

  43. /*************************************************************/
  44. /*                       串口发送函数                        */
  45. /*************************************************************/
  46. void SCI_send(unsigned char data)
  47. {
  48.   while(!SCI0SR1_TDRE);       //等待发送数据寄存器(缓冲器)为空
  49.   SCI0DRL = data;
  50. }

  51. /*************************************************************/
  52. /*                  串口发送字符串函数                       */
  53. /*************************************************************/
  54. void send_string(unsigned char *putchar)
  55. {
  56.   while(*putchar!=0x00)       //判断字符串是否发送完毕
  57.   {
  58.    SCI_send(*putchar++);  
  59.   }
  60. }


  61. /*************************************************************/
  62. /*                         主函数                            */
  63. /*************************************************************/
  64. void main(void) {
  65.   unsigned char a;
  66.   DisableInterrupts;
  67.   INIT_PLL();
  68.   INIT_SCI();
  69.   LEDCPU_dir = 1;
  70.   EnableInterrupts;        
  71.   LEDCPU = LED_ON;

  72.   for(;;)   //循环发送字符串
  73.   {
  74.     if(SCI0SR1_RDRF==1){
  75.       
  76.     a=SCI0DRL;
  77.     send_string(putstring);
  78.     LEDCPU=~LEDCPU;        //闪灯
  79.     }
  80.   }
  81. }
利用以上程序实行xs128与matlab串口通信
发送指令1返回123


  • 串口通信.png

回帖(28)

chongba

2013-4-30 13:03:54
楼主,,,,太强大了!!
举报

风驰天下

2013-5-10 14:12:09
呵呵,不错
举报

陈源

2013-5-11 19:21:52
必须的顶起!
举报

黄lo!

2013-5-13 00:00:27
围观一个。。。。。。。。。
举报

韩井玉

2013-6-4 22:21:09
谢谢分享!!!!
举报

givealittletime

2013-6-5 10:20:31
kankan, xiexie ......
举报

小杰11

2013-11-24 20:12:13
{:1:}
举报

刘天雨

2013-11-25 11:07:33
不错,学习学习,谢谢分享
举报

电翼小组

2013-11-29 09:22:53
{:20:}{:20:}
举报

超级口水哥

2014-5-6 11:48:47
好东西,下载了
举报

女兆火山

2014-5-7 16:30:48

楼主,,,,太强大了!!
举报

fpga539

2014-5-20 22:01:03
楼主你很强大,你还是干hang tian的
举报

周金帅

2014-6-3 08:20:37

楼主,,,,太强大了!!
举报

张庆林

2014-8-17 21:14:07
好像很不错。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
举报

谢风

2015-9-27 15:19:58
好东西,感谢楼主分享
举报

胡静

2015-12-28 20:12:51
matlab这边怎么编的
举报

tbhtom

2016-2-9 11:40:52
很好的资料,建模调试好工具。
举报

lucifer12333333

2016-3-15 18:33:01
好东西,下载学习
举报

wujianwei3980

2016-3-15 22:56:00
正***这个串***具,多谢分享
举报

更多回帖

发帖
×
20
完善资料,
赚取积分