x 過去ログを見よ!!
x 今後の予定としては、8ビット
目的
クロックのテスト
32MHz,16MHz,8MHz,4MHz
HALを使ってCPUクロックの変更
//HAL_16M_L_TI_KA_031_1
#include "mbed.h"
void s_clk16();
void gpio_int();
int main()
{
s_clk16();
gpio_int();
//pc.baud(9600); //16mz
//printf("%d Hz\r\n", SystemCoreClock);
while(1) {
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_11, GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_11, GPIO_PIN_RESET);
HAL_Delay(500);
//printf("%d Hz\r\n", SystemCoreClock);
}//while
}//main
void s_clk16()
{
//クロックの設定 RC発振16Mhz 逓倍回路オフ
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV1;
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
//周辺装置へのクロックの供給
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);
}//s_clk16
void gpio_int()
{
//gpioにクロックを供給
__HAL_RCC_GPIOA_CLK_ENABLE();
//gpioの設定 プルプッシュ スピードロー
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}//gpio_int