電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 1301|回復(fù): 1
收起左側(cè)

[作業(yè)已審核] 4.21 32嵌入式學(xué)習(xí)二

[復(fù)制鏈接]

3

主題

12

帖子

73

積分

一級會員

Rank: 1

積分
73
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2021-4-21 15:44:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
IAR替代VC學(xué)習(xí)C語言
1、輸出(printf)
2、輸入(scanf)[stdint.h]

PID算法實例(后期再學(xué)習(xí) 目前了解代碼)
1、位置型
2、增量型

cubeMX
配置------
時鐘 clock (HSI HSE)
調(diào)試接口 SYS debug serial wire
I/O
IAR EWARM
keil MDK-ARM

GPIO輸入輸出
1、單燈閃爍等待延時
for(uint32_t i=0;i<500000;i++)
2、單燈閃爍輪詢計數(shù)
uint32_t count=0;
uint8_t   flag=0;
count++;
if(count>=100000)
{
            count=0;//記住清零
            if(flag==0)
            {
                flag=1;
                HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET); //滅燈
            }
            else
            {
                flag=0;
                HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET); //亮燈
            }

}
3、多燈不同頻率閃爍串行
for(uint32_t i=0;i<500000;i++)
for(uint32_t i=0;i<2500000;i++)
4、多燈不同頻率閃爍并行
uint32_t count0=0;
uint8_t   flag0=0;

uint32_t count0=0;
uint8_t   flag0=0;

count0++;
if(count>=100000)
{
    count0=0;
    if(flag0==0)
     {
       flag0=1;
       HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET); //滅燈
      }
      else
      {
        flag0=0;
         HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET); //亮燈
       }
}
count1++;
if(count>=500000)
{
    count1=0;
    if(flag1==0)
     {
       flag1=1;
       HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET); //滅燈
      }
      else
      {
        flag1=0;
         HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET); //亮燈
       }
}

5、傳統(tǒng)按鍵消抖
uint8_t step=0;
switch(step)
{
   case 0:
     {
         if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin)==GPIO_PIN_RESET) //判斷按鍵是否按下
         for(uint32_t i=0;i<100000;i++)
           {
             printf("按鍵按下");
             step=1;
            }
     }
break;
   case 1:
     {
         if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin)==GPIO_PIN_SET)
           {
             printf("按鍵釋放");
             step=0;
            }
     }
break;

}
6、狀態(tài)機消抖
uint32_t count=0;
uint8_t step=0;
switch(step)
{
   case 0:
    {
      if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin)==GPIO_PIN_RESET) //判斷按鍵是否按下
       {
          count++;
          if(count>=100000)
             {
               count=0;
               printf("按鍵按下");
               step=1;
              }
       }
    else
       {
         count=0;
        }
     }
  break;

case 1:
{
     if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin)==GPIO_PIN_SET)
      {
           step=0;
          printf("按鍵釋放")
      }
}
}






回復(fù)

使用道具 舉報

24

主題

355

帖子

1677

積分

版主

Rank: 3Rank: 3

積分
1677
QQ
沙發(fā)
發(fā)表于 2021-4-22 09:55:06 | 只看該作者
不錯,總結(jié)的很細(xì)致
回復(fù) 支持 反對

使用道具 舉報

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表