RISC-V技术william hill官网
直播中

march123456

6年用户 119经验值
擅长:可编程逻辑,模拟技术,连接器
私信 关注
[经验]

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

VID_20220624_135512

                           基于中科湖人的仪表

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


0.jpg


4556.jpg


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

5956.jpg


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

这里需要注意把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.         div = SysCtrlRegs.PLLCR.bit.DIV;
  10.         divsel = SysCtrlRegs.PLLSTS.bit.DIVSEL;
  11.         lospcp = SysCtrlRegs.LOSPCP.bit.LSPCLK;

  12.         if(lospcp != 0)
  13.         {
  14.                 lospcp = lospcp * 2;
  15.         }
  16.         else
  17.         {
  18.                 lospcp = 1;
  19.         }

  20.         /*分频值设置
  21.          divsel为 0时,系统时钟4分频
  22.          divsel为 1时,系统时钟4分频
  23.          divsel为 2时,系统时钟2分频
  24.          divsel为 3时,系统时钟1分频*/
  25.         switch(divsel)
  26.         {
  27.         case 0:
  28.         case 1:
  29.                 lspclk = 12000000 * div / 4 / lospcp;
  30.                 break;
  31.         case 2:
  32.                 lspclk = 12000000 * div / 2 / lospcp;
  33.                 break;
  34.         case 3:
  35.                 lspclk = 12000000 * div / 1 / lospcp;
  36.                 break;
  37.         }

  38.         brr = lspclk / (baud * 8) - 1;

  39.         /*SCI 停止位设置    0:一个停止位   1:两个停止位*/
  40.         SciaRegs.SCICCR.bit.STOPBITS = 0;

  41.         /*SCI 奇偶校验位    0:奇偶校验   1:偶偶校验*/
  42.         SciaRegs.SCICCR.bit.PARITY = 0;

  43.         /*SCI 奇偶校验使能   0:关闭   1:启用*/
  44.         SciaRegs.SCICCR.bit.PARITYENA = 0;

  45.         /*SCI 字符长度   0:1个字长  1:2个字长 ... 7:8个字长*/
  46.         SciaRegs.SCICCR.bit.SCICHAR = 7;

  47.         /*使能SCI的发送机和接收机*/
  48.         SciaRegs.SCICTL1.bit.TXENA = 1;
  49.         SciaRegs.SCICTL1.bit.RXENA = 1;

  50.         /*SCI 16位波特率选择寄存器 高8位*/
  51.         SciaRegs.SCIHBAUD = (uint8)((brr >> 8) & 0xff);
  52.         /*SCI 16位波特率选择寄存器 低8位*/
  53.         SciaRegs.SCILBAUD = (uint8)(brr & 0xff);

  54.         /*SCI 软件复位,重新启动SCI*/
  55.         SciaRegs.SCICTL1.bit.SWRESET = 1;
  56. }

  57. /******************************************************************
  58. *函数名:Scia_Send(uint8 data)
  59. *参   数: data,准备发送的字节
  60. *返回值:无
  61. *作   用: SCIA 发送一个字节
  62. ******************************************************************/
  63. void Scia_Send(uint8 data)
  64. {
  65.         while(SciaRegs.SCICTL2.bit.TXRDY == 0)
  66.         {
  67.         }

  68.         SciaRegs.SCITXBUF = data;
  69. }




  70. /******************************************************************
  71. *函数名:Scia_Print(char *str)
  72. *参   数: *str,要发送的字符串
  73. *返回值:无
  74. *作   用: SCIA 发送一个字符串
  75. ******************************************************************/
  76. void Scia_Print(char *str)
  77. {
  78.         while(*str != '\0')
  79.         {
  80.                 while(SciaRegs.SCICTL2.bit.TXRDY == 0)
  81.                 {
  82.                 }

  83.                 SciaRegs.SCITXBUF = *str++;
  84.         }
  85. }



更多回帖

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