【中科昊芯Start_DSC28034PNT湖人开发板试用体验】 基于中科湖人的仪表

描述

本文来源电子发烧友社区,作者:马先生, 帖子地址:https://bbs.elecfans.com/jishu_2289178_1_1.html

基于中科湖人的仪表

迪文COF屏UI
使用迪文的屏做了一个简单的UI


中科昊芯



中科昊芯



硬件连接使用迪文的串口连接中科的串口

中科昊芯



并且用到了外扩模拟接口和可调电阻

这里需要注意把ADIN5A短接到RG

把可调电阻信号传送给对应引脚。


  1. void Scia_Config(uint32 baud)
  2. {
  3.         uint32 div = 0;
  4.         uint32 divsel = 0;
  5.         uint32 lospcp = 0;
  6.         uint32 lspclk = 0;
  7.         uint16 brr = 0;
  8.  
  9.         /*获取系统时钟的倍频、分频和低速外部时钟的值*/
  10.         div = SysCtrlRegs.PLLCR.bit.DIV;
  11.         divsel = SysCtrlRegs.PLLSTS.bit.DIVSEL;
  12.         lospcp = SysCtrlRegs.LOSPCP.bit.LSPCLK;
  13.  
  14.         if(lospcp != 0)
  15.         {
  16.                 lospcp = lospcp * 2;
  17.         }
  18.         else
  19.         {
  20.                 lospcp = 1;
  21.         }
  22.  
  23.         /*分频值设置
  24.          divsel为 0时,系统时钟4分频
  25.          divsel为 1时,系统时钟4分频
  26.          divsel为 2时,系统时钟2分频
  27.          divsel为 3时,系统时钟1分频*/
  28.         switch(divsel)
  29.         {
  30.         case 0:
  31.         case 1:
  32.                 lspclk = 12000000 * div / 4 / lospcp;
  33.                 break;
  34.         case 2:
  35.                 lspclk = 12000000 * div / 2 / lospcp;
  36.                 break;
  37.         case 3:
  38.                 lspclk = 12000000 * div / 1 / lospcp;
  39.                 break;
  40.         }
  41.  
  42.         brr = lspclk / (baud * 8) - 1;
  43.  
  44.         /*SCI 停止位设置    0:一个停止位   1:两个停止位*/
  45.         SciaRegs.SCICCR.bit.STOPBITS = 0;
  46.  
  47.         /*SCI 奇偶校验位    0:奇偶校验   1:偶偶校验*/
  48.         SciaRegs.SCICCR.bit.PARITY = 0;
  49.  
  50.         /*SCI 奇偶校验使能   0:关闭   1:启用*/
  51.         SciaRegs.SCICCR.bit.PARITYENA = 0;
  52.  
  53.         /*SCI 字符长度   0:1个字长  1:2个字长 ... 7:8个字长*/
  54.         SciaRegs.SCICCR.bit.SCICHAR = 7;
  55.  
  56.         /*使能SCI的发送机和接收机*/
  57.         SciaRegs.SCICTL1.bit.TXENA = 1;
  58.         SciaRegs.SCICTL1.bit.RXENA = 1;
  59.  
  60.         /*SCI 16位波特率选择寄存器 高8位*/
  61.         SciaRegs.SCIHBAUD = (uint8)((brr >> 8) & 0xff);
  62.         /*SCI 16位波特率选择寄存器 低8位*/
  63.         SciaRegs.SCILBAUD = (uint8)(brr & 0xff);
  64.  
  65.         /*SCI 软件复位,重新启动SCI*/
  66.         SciaRegs.SCICTL1.bit.SWRESET = 1;
  67. }
  68.  
  69. /******************************************************************
  70. *函数名:Scia_Send(uint8 data)
  71. *参   数: data,准备发送的字节
  72. *返回值:无
  73. *作   用: SCIA 发送一个字节
  74. ******************************************************************/
  75. void Scia_Send(uint8 data)
  76. {
  77.         while(SciaRegs.SCICTL2.bit.TXRDY == 0)
  78.         {
  79.         }
  80.  
  81.         SciaRegs.SCITXBUF = data;
  82. }
  83.  
  84.  
  85.  
  86.  
  87. /******************************************************************
  88. *函数名:Scia_Print(char *str)
  89. *参   数: *str,要发送的字符串
  90. *返回值:无
  91. *作   用: SCIA 发送一个字符串
  92. ******************************************************************/
  93. void Scia_Print(char *str)
  94. {
  95.         while(*str != '')
  96.         {
  97.                 while(SciaRegs.SCICTL2.bit.TXRDY == 0)
  98.                 {
  99.                 }
  100.  
  101.                 SciaRegs.SCITXBUF = *str++;
  102.         }
  103. }
  104.  
  105.  
复制代码

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分