2016年10月6日 星期四

NUCLEO-F030R8開發板利用STM32CubeMX來設定Timer中斷副程式

利用STM32F030R8的開發板NUCLEO-F030R8來設計Timer中斷副程式,是利用STM32CubeMx的軟體來產生程式Project。

1.打開STM32CubeMX軟體,點選New Project。

2.點選Board Selector,選擇NUCLEO-F0308,按OK鍵。

3.選擇TIM1,Clock Source 選擇Internal Clock。 

4.設定內部Clock,因TIM1使用APB1作為clock source,所以可以確認Clock為48MHz。 

 5.點選Configuration的TIM1。 

6.STM32F030R8的CPU為48MHz,TIM1CLK為48MHz。若要將Counter Clock設定為10KHz,
則Prescaler應該設定為(System Core Clk / 10KHz)-1 = 4799。 
若要產生每一秒中斷一次,頻率也就是1Hz。Update Rate為1Hz,依照公式可得出:
Update Rate = 1Hz = Counter Clock / (ARR+1) = 10KHz / (ARR+1)  。
可算出ARR = 9999 ,並把Prescaler填入4799,Counter Period填入9999。

7.NVIC Settings 選項內,TIM1interrupts Enabled打勾。


8.在Project Settings選擇程式編輯的軟體。這裡是選擇MDK-ARM V5(Keil)來編輯。


9.Project / Generate Code來產生Project Code,打開Project,在main.c內的/* USER CODE BEGIN 2 */後面加上HAL_TIM_Base_Start_IT(&htim1);來啟動TIM1。 


10.在Main.c內,/* USER CODE BEGIN 4 */與/* USER CODE END 4 */之間,
填入void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)函式 ;如下
/* USER CODE BEGIN 4 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
          HAL_GPIO_TogglePin(LD2_GPIO_Port,LD2_Pin); 
}
/* USER CODE END 4 */
程式動作是LED每1秒閃爍一次。

STM32CubeMX Timer中斷教學錄影

2016年9月29日 星期四

8x8矩陣LED驅動電路圖與source code

8x8矩陣LED驅動電路設計架構,主要由一顆STM32L031K6 ST MCU來控制,以掃描方式來一顆顆點亮LED,用一顆CR2032鈕扣電池就可以驅動,可以連續動作20個小時,下面圖式是8x8矩陣LED電路圖,電路架構很單純,就是一般的GPIO來控制矩陣LED。

接下來就是介紹8x8矩陣LED驅動的Source code介紹。

void All_ROW_H(void)
{
LED_ROW_A_H();
LED_ROW_B_H();
LED_ROW_C_H();
LED_ROW_D_H();
LED_ROW_E_H();
LED_ROW_F_H();
LED_ROW_G_H();
LED_ROW_H_H();
}
void All_ROW_L(void)
{
LED_ROW_A_L();
LED_ROW_B_L();
LED_ROW_C_L();
LED_ROW_D_L();
LED_ROW_E_L();
LED_ROW_F_L();
LED_ROW_G_L();
LED_ROW_H_L();
}
void All_COL_H(void)
{
LED_COL_A_H();
LED_COL_B_H();
LED_COL_C_H();
LED_COL_D_H();
LED_COL_E_H();
LED_COL_F_H();
LED_COL_G_H();
LED_COL_H_H();
}
void All_COL_L(void)
{
LED_COL_A_L();
LED_COL_B_L();
LED_COL_C_L();
LED_COL_D_L();
LED_COL_E_L();
LED_COL_F_L();
LED_COL_G_L();
LED_COL_H_L();
}

void Select_Turn_On_LED(uint8_t ROW,uint8_t COL)
{
All_ROW_L();
All_COL_H();
switch(ROW)
{
case 1 :
LED_ROW_A_H();
break;

case 2 :
LED_ROW_B_H();
break;

case 3 :
LED_ROW_C_H();
break;

case 4 :
LED_ROW_D_H();
break;

case 5 :
LED_ROW_E_H();
break;

case 6:
LED_ROW_F_H();
break;

case 7 :
LED_ROW_G_H();
break;

case 8 :
LED_ROW_H_H();
break;

default :
break;
}
switch(COL)
{
case 1 :
LED_COL_A_L();
break;

case 2 :
LED_COL_B_L();
break;

case 3 :
LED_COL_C_L();
break;

case 4 :
LED_COL_D_L();
break;

case 5 :
LED_COL_E_L();
break;

case 6:
LED_COL_F_L();
break;

case 7 :
LED_COL_G_L();
break;

case 8 :
LED_COL_H_L();
break;

default :
break;
}

Wait_delay(100);
}

void Smile_Face(void)
{
Select_Turn_On_LED(1,4);
Select_Turn_On_LED(1,5);
Select_Turn_On_LED(2,1);
Select_Turn_On_LED(2,2);
Select_Turn_On_LED(2,5);
Select_Turn_On_LED(2,6);
Select_Turn_On_LED(3,1);
Select_Turn_On_LED(3,2);
Select_Turn_On_LED(3,6);
Select_Turn_On_LED(3,7);
Select_Turn_On_LED(4,6);
Select_Turn_On_LED(4,7);
Select_Turn_On_LED(5,6);
Select_Turn_On_LED(5,7);
Select_Turn_On_LED(6,1);
Select_Turn_On_LED(6,2);
Select_Turn_On_LED(6,6);
Select_Turn_On_LED(6,7);
Select_Turn_On_LED(7,1);
Select_Turn_On_LED(7,2);
Select_Turn_On_LED(7,5);
Select_Turn_On_LED(7,6);
Select_Turn_On_LED(8,4);
Select_Turn_On_LED(8,5);
}
void main(void)
{
     HAL_Init();

     /* Configure the system clock */
     SystemClock_Config();

     /* Initialize all configured peripherals */
     MX_GPIO_Init();
     MX_TIM2_Init();
     while(1)
    {
           Smile_Face();
     }
}


2016年3月24日 星期四

Kinetis Design Studio 安裝流程

Kinetis Design Studio 是免費的開發軟體,但只有支援Kinetis MCU,其他MCU,像是ColdFire等MCU是不支援。
Kinetis Design Studio的介面與之前Freescale codewarrior很像,有使用過codewarrior應該很快就可以適應Kinetis Design Studio的編輯環境。
接下來就是Kinetis Design Studio的安裝介紹,有幾個軟體要去安裝。

1.先安裝Kinetis Design Studio V3.0.0軟體。
下載路徑: http://www.nxp.com/products/software-and-tools/run-time-software/kinetis-software-and-tools/ides-for-kinetis-mcus/kinetis-design-studio-integrated-development-environment-ide:KDS_IDE#

2.再安裝Kinetis Software Development Kit (SDK)  , Kinetis SDK 1.3 Mainline版本。
下載路徑 : http://www.nxp.com/products/software-and-tools/run-time-software/kinetis-software-and-tools/development-platforms-with-mbed/software-development-kit-for-kinetis-mcus:KINETIS-SDK

3.安裝KSDK_1.3.0_Eclipse_Update,執行Kinetis Design Studio軟體。
a. Select "Help" -> "Install New Software".








b.In the Install New Software dialog box, click the "Add" button in the upper right corner. Then, in the Add Repository dialog, select the "Archive" button.

















c.路徑在C:/Fresscale/KSDK_1.3.0/tools/eclipse_update/KSDK_1.3.0_Eclipse_Update.zip.
d.Click "Open", and the "OK" button in the Add Repository dialog box.
e.The KSDK update shows up in the list of the original Install dialogs.

4.安裝其他軟體,執行Kinetis Design Studio軟體。
a. Select "Help" -> "Install New Software".

b.在Work With 選擇Freescale KDS Update Site - http://freescale.com/lgfiles/updates/Eclipse/KDS





















c.點選Select All ,按NEXT去完成安裝。



5.Check for Updates.檢查是否有更新軟體。













完成以上軟體的安裝,Kinetis Design Studio動作才會正常。