【南京中科微CSM32RV20开发板试用体验】+1-GPIO口串口的使用

描述

本文来源电子发烧友社区,作者:卢松涛, 帖子地址:https://bbs.elecfans.com/jishu_2249212_1_1.html

新建的项目有很多功能的参考用法demo 红绿蓝色LED灯
    ///----Chapter 5 GPIO Test Init ---------------------------------------------------------------------------------
    GPIO_MODE_Init(GPIOA,PIN8,GPIO_MODE_OUTPUT); //GPIO 模式
    GPIO_MODE_Init(GPIOA,PIN10,GPIO_MODE_OUTPUT); //GPIO 模式
    GPIO_MODE_Init(GPIOA,PIN12,GPIO_MODE_OUTPUT); //GPIO 模式
demo UART
   ///---- Chapter 15 UART Test Init -------------------------------------------------------------------------------
    //uint8_t upack1[20] = {0,1,2,3,4,5,6,7,8,9};
    //uint8_t upack2[20] = {0,1,2,3,4,5,6,7,8,9};
    //uint8_t upack3[20] = {0,1,2,3,4,5,6,7,8,9};
    //uint8_t upack4[20] = {10,1,2,3,4,5,6,7,8,9};

    //UART_Init_case1(UART2);//非中断模式
    //UART_Init_case1(UART3);//非中断模式
    //UART_Init_case1(UART4);//非中断模式

    UART_Init_IT_case1(UART1);//中断模式
    //UART_Init_IT_case1(UART4);//中断模式
    Interrupt_Enable(UART1_int_ID);//CLIC使能单个中断
    UART1->CTRL |= 0x00000001U;  //清除中断标志位,防止开机先进一次中断
    //Interrupt_Enable(UART4_int_ID);//CLIC使能单个中断

    SYS_Interrupt_Enable();//CLIC开总中断
    //printf("uart init:rn");

串口控制a8
GPIO_Write(GPIOA,PIN8,GPIO_RESET);
10000ms a10
GPIO_Toggle(GPIOA,PIN10); //GPIO 翻转









  1. #include "headfile.h"
  2.  
  3. void mp_receive_data(uint8_t *buf, uint16_t *len)
  4. {
  5.         uint8_t rxlen = UART1_RX_CNT;
  6.         uint16_t i = 0;
  7.         *len = 0;                                //默认为0
  8.         Delay32M_ms(10);                //等待40ms,连续超过10ms没有接收到一个数据,则认为接收结束
  9.         if (rxlen == UART1_RX_CNT && rxlen) //接收到了数据,且接收完成了
  10.         {
  11.                 for (i = 0; i < rxlen; i++)
  12.                 {
  13.                         buf[i] = uart_dev.rxbuf[i];
  14.                 }
  15.                 *len = UART1_RX_CNT;        //记录本次数据长度
  16.                 UART1_RX_CNT = 0;                //清零
  17.                 uart_dev.frameok=1;                //标记完成一帧数据接收
  18. //          getData=0;  //数据接收完成,标志位清零
  19.         }
  20. }
  21. #define Max_Column        128
  22.  
  23. uint8_t ReceiveBuff[RECV_LEN];
  24. int main(void)
  25. {
  26.  
  27.     uint16_t rlen=0;
  28.     uart_dev.rxlen=0;
  29.     ///----System Init ---------------------------------------------------------------------------------------------
  30.     CLIC_Init();//系统中断配置
  31.     System_Clock_Init();//系统时钟初始化
  32.  
  33.     ///----Chapter 3 LowPower Test Init ---------------------------------------------------------------------------------
  34.     //低功耗测功耗需要IO不能悬空
  35.     //Delay32M_ms(5000);
  36.     //LowPower_Config_case1();//所有IO设置为输入,下拉
  37.     //LowPower_Config_case2();//所有IO设置为输入,上拉
  38.  
  39.     //使用外部中断唤醒
  40.     //GPIO_EXIT_Init_case1(GPIOA, PIN2);//检测高电平
  41.     //Interrupt_Level(EXIT2_int_ID, INT_LEVEL0);//CLIC设置中断抢占级别
  42.     //Interrupt_Enable(EXIT2_int_ID);//CLIC使能EXIT中断
  43.     //SYS_Interrupt_Enable();//CLIC开总中断
  44.  
  45.     //配置不同低功耗模式
  46.     //System_Halt();//待机模式 halt1
  47.     //System_Sleep();//睡眠模式 halt2
  48.     //System_Powerdown();//掉电模式 powerdown1
  49.     //System_DeepPwd();//掉电模式 powerdown2
  50.  
  51.     ///----Chapter 5 GPIO Test Init ---------------------------------------------------------------------------------
  52.     GPIO_MODE_Init(GPIOA,PIN8,GPIO_MODE_OUTPUT); //GPIO 模式
  53.     GPIO_MODE_Init(GPIOA,PIN10,GPIO_MODE_OUTPUT); //GPIO 模式
  54.     GPIO_MODE_Init(GPIOA,PIN12,GPIO_MODE_OUTPUT); //GPIO 模式
  55.     //GPIO_MODE_Init(GPIOA,PIN14,GPIO_MODE_OUTPUT); //GPIO 模式
  56.     //GPIO_MODE_Init(GPIOA,PIN15,GPIO_MODE_OUTPUT); //GPIO 模式
  57.  
  58.     //GPIO_Write(GPIOA,PIN8,GPIO_SET); //GPIO 输出
  59.     //GPIO_Write(GPIOA,PIN10,GPIO_SET); //GPIO 输出
  60.     //GPIO_Write(GPIOA,PIN12,GPIO_SET); //GPIO 输出
  61.     //GPIO_Write(GPIOA,PIN14,GPIO_RESET); //GPIO 输出
  62.     //GPIO_Write(GPIOA,PIN15,GPIO_RESET); //GPIO 输出
  63.  
  64.     //GPIO_Toggle(GPIOA,PIN15); //GPIO 翻转
  65.     //GPIO_MODE_Init(GPIOA,PIN15,GPIO_MODE_INTPUT); //GPIO 模式
  66.     for(uint8_t i=0;i<10;i++)
  67.     {
  68.         GPIO_Toggle(GPIOA,PIN8); //GPIO 翻转
  69.         Delay32M_ms(100);
  70.     }
  71.  
  72.     ///---- Chapter 6 EXIT Test Init -------------------------------------------------------------------------------------
  73.     //GPIO_EXIT_Init_case1(GPIOA, PIN2);//检测高电平
  74.     //GPIO_EXIT_Init_case2(GPIOA, PIN2);//检测低电平
  75.     //GPIO_EXIT_Init_case3(GPIOA, PIN2);//检测上升沿
  76.     //GPIO_EXIT_Init_case4(GPIOA, PIN2);//检测下降沿
  77.  
  78.     //Interrupt_Level(EXIT2_int_ID, INT_LEVEL0);//CLIC设置中断抢占级别
  79.     //Interrupt_Enable(EXIT2_int_ID);//CLIC使能EXIT中断
  80.  
  81.     //载波检测中断
  82.     //CAW_Init();//载波检测
  83.     //Interrupt_Enable(CAW_int_ID);//CLIC使能中断
  84.  
  85.     //SYS_Interrupt_Enable();//CLIC开总中断
  86.  
  87.     ///---- Chapter 7 RTC Test Init --------------------------------------------------------------------------------------
  88.     //RTC_Init_case1();
  89.  
  90.     ///---- Chapter 8 IWDG Test Init -------------------------------------------------------------------------------------
  91.     //IWDG_Init(9000); //配置看门狗计数值(时钟频率3K)
  92.     //Delay32M_ms(1000);
  93.     //IWDG_Start(); //启动看门狗
  94.     //IWDG_Refresh(); //喂狗
  95.  
  96.     ///---- Chapter 9 timer Test Init ------------------------------------------------------------------------------------
  97.     //GPIO_MODE_Init(GPIOB,PIN11,GPIO_MODE_OUTPUT); //GPIO 模式
  98.     //GPIO_MODE_Init(GPIOA,PIN9,GPIO_MODE_OUTPUT);
  99.     //GPIO_MODE_Init(GPIOA,PIN11,GPIO_MODE_OUTPUT);
  100.     //GPIO_MODE_Init(GPIOA,PIN13,GPIO_MODE_OUTPUT);
  101.  
  102.     //外设配置
  103.     //Timer1_UpCounting_Mode_Init();//向上计数
  104.         //Timer1_6StepPWM_Mode_Init();//6stepPWM输出
  105.     //Timer2_UpCounting_Mode_Init();//向上计数
  106.     //Timer2_DownCounting_Mode_Init();//向下计数
  107.     //Timer2_ExternalClock_Mode_Init();//外部时钟
  108.     //Timer2_InputCapture_Mode_Init();//输入捕获
  109.     //Timer2_PWM_InputCapture_Mode_Init();//PWM输入捕获
  110.     //Timer2_Input_XOR_Mode_Init();//输入异或
  111.     //Timer2_PWM_Mode_Init();//PWM输出
  112.     //Timer2_6StepPWM_Mode_Init();//6stepPWM输出
  113.  
  114.     //设置中断优先级
  115.     //Interrupt_Level(TIMER1_updata_int_ID, INT_LEVEL1);//CLIC设置中断抢占级别
  116.  
  117.     //使能外设中断
  118.     //Interrupt_Enable(TIMER1_break_int_ID);//CLIC使能中断
  119.     //Interrupt_Enable(TIMER1_updata_int_ID);//CLIC使能中断
  120.     //Interrupt_Enable(TIMER1_capture_compare_int_ID);//CLIC使能中断
  121.     //Interrupt_Enable(TIMER1_trigger_comm_int_ID);//CLIC使能中断
  122.  
  123.     //Interrupt_Enable(TIMER2_break_int_ID);//CLIC使能中断
  124.     //Interrupt_Enable(TIMER2_updata_int_ID);//CLIC使能中断
  125.     //Interrupt_Enable(TIMER2_capture_compare_int_ID);//CLIC使能中断
  126.     //Interrupt_Enable(TIMER2_trigger_comm_int_ID);//CLIC使能中断
  127.  
  128.     //使能系统总中断
  129.     //SYS_Interrupt_Enable();//CLIC开总中断
  130.  
  131.     ///---- Chapter 10 WUP Test Init -------------------------------------------------------------------------------------
  132.     //GPIO_MODE_Init(GPIOA,PIN2,GPIO_MODE_OUTPUT);
  133.     //GPIO_MODE_Init(GPIOA,PIN3,GPIO_MODE_OUTPUT);
  134.  
  135.     //WUP_Init_case1(9000);//设置中断周期,使能WUP中断
  136.     //Interrupt_Enable(WUP_int_ID);//CLIC使能中断
  137.     //SYS_Interrupt_Enable();//CLIC开总中断
  138.  
  139.     //配置不同低功耗模式
  140.     //System_Halt();//待机模式 halt1
  141.     //System_Sleep();//睡眠模式 halt2
  142.     //System_Powerdown();//掉电模式 powerdown1
  143.     //System_DeepPwd();//掉电模式 powerdown2
  144.  
  145.     ///---- Chapter 11 ADC Test Init -------------------------------------------------------------------------------------
  146.  
  147.   
  148.  
  149.     ///---- Chapter 12 I2C Test Init -------------------------------------------------------------------------------------
  150.  
  151.     //I2C_Init_case2();//ready中断模式
  152.     //I2C_Init_case3();//error中断模式
  153.     //I2C_Init_case4();//ready & error中断模式
  154.  
  155.     //Interrupt_Enable(I2C_ready_int_ID);//CLIC使能i2c_ready中断
  156.     //Interrupt_Enable(I2C_error_int_ID);//CLIC使能i2c_error中断
  157.     //SYS_Interrupt_Enable();//CLIC开总中断
  158.  
  159.     ///---- Chapter 13 SPI1 Test Init ------------------------------------------------------------------------------------
  160.     //uint8_t sTxpack[10] = {0,1,2,3,4,5,6,7,8,9};
  161.     //uint8_t sRxpack[10] = {0,1,2,3,4,5,6,7,8,9};
  162.     //uint8_t REG_Data;
  163.  
  164.     //SPI1 Init Test
  165.     //SPI_Init_case1(SPI1);//非中断模式
  166.     //SPI1_CSN_Init_case1();//CFG: CE-GPIO7,CSN-GPIO8
  167.     //SPI_Init_case2(SPI1);//中断模式
  168.     //Interrupt_Enable(SPI1_int_ID);//CLIC使能单个中断
  169.  
  170.     //SPI2 Init Test
  171.     //SPI_Init_case1(SPI2);//非中断模式
  172.     //SPI2_CSN_Init_case1();//CFG: CE-GPIO7,CSN-GPIO8
  173.     //SPI_Init_case2(SPI2);//中断模式
  174.     //Interrupt_Enable(SPI2_int_ID);//CLIC使能单个中断
  175.  
  176.  
  177.     ///---- Chapter 15 UART Test Init -------------------------------------------------------------------------------
  178.     //uint8_t upack1[20] = {0,1,2,3,4,5,6,7,8,9};
  179.     //uint8_t upack2[20] = {0,1,2,3,4,5,6,7,8,9};
  180.     //uint8_t upack3[20] = {0,1,2,3,4,5,6,7,8,9};
  181.     //uint8_t upack4[20] = {10,1,2,3,4,5,6,7,8,9};
  182.  
  183.     //UART_Init_case1(UART2);//非中断模式
  184.     //UART_Init_case1(UART3);//非中断模式
  185.     //UART_Init_case1(UART4);//非中断模式
  186.  
  187.     UART_Init_IT_case1(UART1);//中断模式
  188.     //UART_Init_IT_case1(UART4);//中断模式
  189.     Interrupt_Enable(UART1_int_ID);//CLIC使能单个中断
  190.     UART1->CTRL |= 0x00000001U;  //清除中断标志位,防止开机先进一次中断
  191.     //Interrupt_Enable(UART4_int_ID);//CLIC使能单个中断
  192.  
  193.     SYS_Interrupt_Enable();//CLIC开总中断
  194.     //printf("uart init:rn");
  195.  
  196.     ///---- Chapter 16 LV Test Init --------------------------------------------------------------------------------------
  197.     //LV_Init_case1(12);//设置低压报警阈值
  198.     //LV_Interrupt_Enable();//使能低压报警中断
  199.     //Interrupt_Enable(LV_int_ID);//CLIC使能单个中断
  200.     //SYS_Interrupt_Enable();//CLIC开总中断
  201.  
  202.     ///---- Chapter 17 RANDGEN Test Init ---------------------------------------------------------------------------------
  203.     //uint32_t rand_data;
  204.  
  205.     ///---- Chapter 18 compare Test Init ---------------------------------------------------------------------------------
  206.     //COPM1_Init();//COPM1
  207.     //Interrupt_Enable(COMP1_int_ID);//CLIC使能单个中断
  208.     //COPM2_Init();//COPM2
  209.     //Interrupt_Enable(COMP2_int_ID);//CLIC使能单个中断
  210.     //COPM3_Init();//COPM3
  211.     //Interrupt_Enable(COMP3_int_ID);//CLIC使能单个中断
  212.     //SYS_Interrupt_Enable();//CLIC开总中断
  213.  
  214.     ///---- Chapter 22 flash Test Init ----------------------------------------------------------------------------------
  215.     //NVR_RW_Test();//NVR read and write test
  216.     //Flash_RW_Test();
  217.  
  218.     ///---- 系统总中断控制 -------------------------------------------------------------------------------------------------
  219.     //SYS_Interrupt_Enable();//CLIC开总中断
  220.     //SYS_Interrupt_Disable();//CLIC关总中断
  221.     adc_pack[0]=read_csr(mcycle);
  222.     adc_pack[1]=read_csr(mcycle);
  223.     ee_printf("nHello CSM32RV20:n");
  224.     ee_printf("mcycle:%d n",read_csr(mcycle));//比如mcycle这一CSR用于处理器运行的时钟周期计数
  225.     ee_printf("read_csr(mcycle):%d n",adc_pack[1]-adc_pack[0]);//比如mcycle这一CSR用于处理器运行的时钟周期计数
  226.     ee_printf("CMU->OSC_SR:%x n",CMU->OSC_SR );
  227.     if(CMU->OSC_SR==210 ) ee_printf("CMU->OSC_SR:210,OSC 时钟已稳定,RCOSC 时钟已稳定,:OSC 在为 MCU 提供时钟;OSC 在为外设提供时钟;   n" );
  228.     //printf("Hello CSM32RV20:rn");
  229.  
  230.     ee_printf("请输入:on 或者off (开灯/关灯)rn");
  231.     uint32_t rt_tick1 = rt_tick_get();
  232.     uint32_t rt_tick2 = rt_tick_get();
  233.  
  234.     Delay32M_ms(1000);
  235. //   OLED_Light();
  236. //    OLED_DrawBMP(0,0,128,8,BAD_APPLE);
  237.  
  238.         while(1)
  239.         {
  240.             mp_receive_data(ReceiveBuff, &rlen);
  241.         if(uart_dev.frameok==1)  //如果接收到数据
  242.         {
  243.             ee_printf("收到数据:");
  244.  
  245.             Uart_Send(UART1,(uint8_t *)ReceiveBuff,rlen);
  246.  
  247.             ee_printf("rn");
  248.             uint8_t aton= (uint8_t)ReceiveBuff[0];
  249.                                 uint32_t data=0;
  250.             switch (aton) {
  251.                 case 111://"o"
  252.                      if(1==rlen) break;
  253.                      if(ReceiveBuff[1]=='n')
  254.                     {
  255.                         GPIO_Write(GPIOA,PIN8,GPIO_RESET);
  256.                         ee_printf("灯开了!rn");
  257.                     }
  258.                     else if((ReceiveBuff[1]=='f')&&(ReceiveBuff[2]=='f'))
  259.                     {
  260.                         GPIO_Write(GPIOA,PIN8,GPIO_SET);
  261.                         ee_printf("关灯了!rn");
  262.                     }
  263.                     else
  264.                     {
  265.                         ee_printf("请输入:on 或者off (开灯/关灯)rn");
  266.                     }
  267.                     break;
  268.  
  269.  
  270.  
  271.                 default:
  272.                     break;
  273.             }
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.            uart_dev.frameok=0;
  281.            uart_dev.rxlen=0;
  282.         }
  283.         if( rt_tick_get()%1000==0) ee_printf("time is %u s n",rt_tick_get()/1000);
  284.         if(!( rt_tick_get()- rt_tick1< 10000)){
  285.                 rt_tick1 = rt_tick_get() ;
  286.              GPIO_Toggle(GPIOB,PIN8);
  287.             GPIO_Toggle(GPIOA,PIN10); //GPIO 翻转
  288. //            ee_printf("mcycle:%u n",read_csr(mcycle));
  289.             ee_printf("rt_tick_get:%u n", rt_tick_get());
  290.             ee_printf("RTC_MTIME->mtime:%lu         ",RTC_MTIME->mtime);
  291. //            ee_printf("type?RTC_MTIME->mtime:%lu n",type(RTC_MTIME->mtime));
  292.             ee_printf("RTC_MTIME->mtime0-7B:");
  293.                for (uint8_t i = 0; i < 8; i++)
  294.                 {
  295.                        ee_printf("%x    ",_REG8(0x0200bff8UL,i));
  296.                 }
  297.  
  298.             ee_printf("nRTC_MTIME->mtime:%u n",_REG32(0x0200bff8UL,4));
  299.  
  300.             ee_printf("RTC_MTIMECMP->mtimecmp:%lu n",RTC_MTIMECMP->mtimecmp);
  301. //            ee_printf("type?RTC_MTIME->mtime:%lu n",type(RTC_MTIMECMP->mtimecmp));
  302.             ee_printf("->?RTC_MTIME->mtime:%p n",RTC_MTIMECMP->mtimecmp);
  303.             ee_printf("RTC_MTIMECMP->mtimecmp0-7B:");
  304.                for (uint8_t i = 0; i < 8; i++)
  305.                 {
  306.                        ee_printf("%x    ",_REG8(0x02004000UL,i));
  307.                 }
  308.  
  309.             ee_printf(" n");
  310.         }
  311. //        Delay32M_ms(500);
  312.         //Delay16M_ms(500);
  313.         //Delay16M_us(500000);
  314.         //GPIO_Toggle(GPIOA,PIN15);
  315.  
  316.         //printf("main:rn");
  317.  
  318.         ///---- Chapter 6 EXIT test ---------------------------------------------------------------------------------
  319.         //delay16M_ms(500);
  320.         //GPIO_Toggle(GPIOA,PIN15);
  321.  
  322.  
  323.         ///---- Chapter 8 IWDG test ---------------------------------------------------------------------------------
  324.         //IWDG_Refresh();
  325.         //delay16M_ms(500);
  326.         //GPIO_Toggle(GPIOA,PIN15);
  327.  
  328.         ///---- Chapter 9 Timer test --------------------------------------------------------------------------------
  329.         //---- soft break --------------------------------------------------------------------------------------
  330.         //delay16M_ms(100);
  331.         //TIMER2->BDTR |= 1 <<15;//BDTR[15]-MOE-主输出使能:0-关闭,1-使能
  332.         //delay16M_ms(100);
  333.         //TIMER2->EGR |= 1 <<7;//EGR[7]-BG-产生刹车事件
  334.         //---- soft COM ----------------------------------------------------------------------------------------
  335.         //delay16M_ms(100);
  336.         //TIMER2->EGR = 1 <<5;//EGR[5]-COMG-捕获/比较事件,产生控制更新
  337.         //---- generate oxr ------------------------------------------------------------------------------------
  338.         /*
  339.         Delay16M_ms(10);//1
  340.         GPIO_Write(GPIOA,PIN9,GPIO_SET);
  341.         GPIO_Write(GPIOA,PIN11,GPIO_RESET);
  342.         GPIO_Write(GPIOA,PIN13,GPIO_SET);
  343.         Delay16M_ms(10);//2
  344.         GPIO_Write(GPIOA,PIN9,GPIO_SET);
  345.         GPIO_Write(GPIOA,PIN11,GPIO_RESET);
  346.         GPIO_Write(GPIOA,PIN13,GPIO_RESET);
  347.         Delay16M_ms(10);//3
  348.         GPIO_Write(GPIOA,PIN9,GPIO_SET);
  349.         GPIO_Write(GPIOA,PIN11,GPIO_SET);
  350.         GPIO_Write(GPIOA,PIN13,GPIO_RESET);
  351.         Delay16M_ms(10);//4
  352.         GPIO_Write(GPIOA,PIN9,GPIO_RESET);
  353.         GPIO_Write(GPIOA,PIN11,GPIO_SET);
  354.         GPIO_Write(GPIOA,PIN13,GPIO_RESET);
  355.         Delay16M_ms(10);//5
  356.         GPIO_Write(GPIOA,PIN9,GPIO_RESET);
  357.         GPIO_Write(GPIOA,PIN11,GPIO_SET);
  358.         GPIO_Write(GPIOA,PIN13,GPIO_SET);
  359.         Delay16M_ms(10);//6
  360.         GPIO_Write(GPIOA,PIN9,GPIO_RESET);
  361.         GPIO_Write(GPIOA,PIN11,GPIO_RESET);
  362.         GPIO_Write(GPIOA,PIN13,GPIO_SET);
  363.         */
  364.  
  365.         ///---- Chapter 11 ADC test ---------------------------------------------------------------------------------
  366.  
  367.         ///---- Chapter 12 I2C test ---------------------------------------------------------------------------------
  368.         //I2C_Write(0x2d,0x55);//适用于非中断模式
  369.         //i2c_data = I2C_Read(0x2d);//适用于非中断模式
  370.         //printf("data:%xrn",i2c_data);
  371.         //I2C_Write(0x2d,0xaa);//适用于非中断模式
  372.         //i2c_data = I2C_Read(0x2d);//适用于非中断模式
  373.         //printf("data:%xrn",i2c_data);
  374.         //I2C_Write_IT(0x2d,0x55);//适用于中断模式
  375.  
  376.         ///---- Chapter 13 SPI test --------------------------------------------------------------------------------
  377.         //SPI1 Test
  378.         //SPI_Transceive(SPI1,sTxpack,sRxpack,10);//非中断模式
  379.         //SPI1_RW_reg(WRITE_REG+0x05,0x53);//读写Si24R1寄存器
  380.         //REG_Data = SPI1_RW_reg(READ_REG+0x05,0);//读写Si24R1寄存器
  381.         //printf("rnREG5:%02x",REG_Data);
  382.         //delay16M_ms(500);
  383.  
  384.         //SPI2 Test
  385.         //SPI_Transceive(SPI2,sTxpack,sRxpack,10);//非中断模式
  386.         //SPI2_RW_reg(WRITE_REG+0x05,0x53);//读写Si24R1寄存器
  387.         //REG_Data = SPI2_RW_reg(READ_REG+0x05,0);//读写Si24R1寄存器
  388.         //printf("rnREG5:%02x",REG_Data);
  389.         //delay16M_ms(500);
  390.  
  391.         ///---- Chapter 15 UART Test ------------------------------------------------------------------------------------
  392.         //---- 非中断模式数据回环测试 -------------------------------------------------------------------------------------
  393.         //Uart_Reveive(UART1,upack1,10);//适用于非中断发送模式
  394.         //Uart_Send(UART1,upack1,10);//适用于非中断发送模式
  395.         //Uart_Reveive(UART2,upack2,10);//适用于非中断发送模式
  396.         //Uart_Send(UART2,upack2,10);//适用于非中断发送模式
  397.         //Uart_Reveive(UART3,upack3,10);//适用于非中断发送模式
  398.         //Uart_Send(UART3,upack3,10);//适用于非中断发送模式
  399.         //Uart_Reveive(UART4,upack4,10);//适用于非中断发送模式
  400.         //Uart_Send(UART4,upack4,10);//适用于非中断发送模式
  401.  
  402.         //---- 中断模式数据回环测试 --------------------------------------------------------------------------------------
  403.         //UART1_putbuf(UART1_getbuf());
  404.  
  405.         //---- printf测试 ----------------------------------------------------------------------------------------
  406.         //printf("Hellow-01234568789abcdefghijklmnopqrstuvwxyzrn");
  407.  
  408.  
  409.         ///---- Chapter 17 RANDGEN test -----------------------------------------------------------------------------
  410.         //rand_data = RAND_Get();//生成随机数
  411.         //printf("rand:0x%08x,%urn",rand_data,rand_data);
  412.         //delay16M_ms(500);
  413.  
  414.  
  415.         ///---- Chapter 18 COMPARE test -----------------------------------------------------------------------------
  416.         //if(COMP1->irq&0x1)
  417.         //{
  418.             //GPIO_Toggle(GPIOA,PIN15);
  419.             //COMP1->irq = 1;
  420.         //}
  421.         //delay16M_ms(10);
  422.  
  423.         }
  424.  
  425.   return 0;
  426. }
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
复制代码


CSM32RV20

com:

Hello CSM32RV20:
mcycle:112549883
read_csr(mcycle):2
CMU->OSC_SR:d2
CMU->OSC_SR:210,OSC 时钟已稳定,RCOSC 时钟已稳定,:OSC 在为 MCU 提供时钟;OSC 在为外设提供时钟;   
请输入:on 或者off (开灯/关灯)

收到数据:

rt_tick_get:11529
RTC_MTIME->mtime:36899472         RTC_MTIME->mtime0-7B:4a    4c    33    2    0    0    0    0   
RTC_MTIME->mtime:0
RTC_MTIMECMP->mtimecmp:36934400
->?RTC_MTIME->mtime:0233b880
RTC_MTIMECMP->mtimecmp0-7B:0    3    34    2    0    0    0    0     
val:6700  avr:14062513 981.4mV   2108.0mV

time:0 day 0 hour' 0:16
rt_tick_get:21537
RTC_MTIME->mtime:68926545         RTC_MTIME->mtime0-7B:c    fd    1c    4    0    0    0    0   
RTC_MTIME->mtime:0
RTC_MTIMECMP->mtimecmp:68960000
->?RTC_MTIME->mtime:041c6480
RTC_MTIMECMP->mtimecmp0-7B:0    af    1c    4    0    0    0    0     
收到数据:on

灯开了!
rt_tick_get:61655
RTC_MTIME->mtime:197302775         RTC_MTIME->mtime0-7B:c8    dd    c2    b    0    0    0    0   
RTC_MTIME->mtime:0
RTC_MTIMECMP->mtimecmp:197337600
->?RTC_MTIME->mtime:0bc34780
RTC_MTIMECMP->mtimecmp0-7B:0    92    c3    b    0    0    0    0     
time is 63 s
收到数据:off

关灯了!

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

全部0条评论

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

×
20
完善资料,
赚取积分