Laporan Akhir Modul 3 uP&uC
Modul 3 Percobaan 1
Langkah - langkah men-simulasikan rangkaiannya :
- Buatlah rangkaian sesuai dengan gambar di modul di Breadboard
- Lalu buka STMCUBEIDE,klik New STM32 Project
- Pilih MPU/MCU SELECTOR, dan ketik STM32F103C8
- Setting pin di file.ioc nya sesuai dengan kebutuhan
- Lalu generate code dan masukkan kode di main.c dan main.h
- Klik Build project dan Masukkan file.hex yang telat digenerate
- Masukkan file.hex ke STM32F103C8 di Proteus
- Run simulasi di Proteus
2. Hardware dan Diagram Blok [kembali]
3. Rangkaian Simulasi dan Prinsip Kerja [kembali]
Prinsip Kerja :
4. Flowchart dan Listing Program [kembali]
Flowchart :
- Master
Listing Program :
- Master
#include "main.h"
ADC_HandleTypeDef hadc1;
SPI_HandleTypeDef hspi1;
uint8_t txData[2];
uint32_t ldrValue;
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_ADC1_Init(void);
static void MX_SPI1_Init(void);
/*=========================================================*/
uint32_t Read_LDR(void)
{
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1,100);
return HAL_ADC_GetValue(&hadc1);
}
/*=========================================================*/
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_ADC1_Init();
MX_SPI1_Init();
while (1)
{
ldrValue = Read_LDR();
f(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==GPIO_PIN_RESET)
txData[0] = 1;
else
txData[0] = 0;
if(ldrValue < 1500)
txData[1] = 1;
else
txData[1] = 0;
HAL_SPI_Transmit(&hspi1, txData, 2, 100);
HAL_Delay(200);
}
}
/*=========================================================*/
void SystemClock_Config(void)
{
}
/*=========================================================*/
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}
/*=========================================================*/
static void MX_ADC1_Init(void)
{
ADC_ChannelConfTypeDef sConfig = {0};
hadc1.Instance = ADC1;
hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
hadc1.Init.ContinuousConvMode = DISABLE;
hadc1.Init.DiscontinuousConvMode = DISABLE;
hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
hadc1.Init.NbrOfConversion = 1;
HAL_ADC_Init(&hadc1);
sConfig.Channel = ADC_CHANNEL_9;
sConfig.Rank = ADC_REGULAR_RANK_1;
sConfig.SamplingTime = ADC_SAMPLETIME_71CYCLES_5;
HAL_ADC_ConfigChannel(&hadc1, &sConfig);
}
/*=========================================================*/
static void MX_SPI1_Init(void)
{
hspi1.Instance = SPI1;
hspi1.Init.Mode = SPI_MODE_MASTER;
hspi1.Init.Direction = SPI_DIRECTION_2LINES;
hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
hspi1.Init.NSS = SPI_NSS_HARD_OUTPUT;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
hspi1.Init.CRCPolynomial = 7;
HAL_SPI_Init(&hspi1);
}
- Slave
6. Konfigurasi STM32CubeMX[kembali]
1. Buat dua project baru pada STM32CubeIDE menggunakan
mikrokontroler STM32F103C8T6.
• Project_Master
• Project_Slave.
2. Konfigurasi Project Master
a. Atur pin PB0 sebagai GPIO Input dengan konfigurasi Pull-up.
b. Aktifkan SPI1 dengan pengaturan:
• Mode: Full Duplex Master
• Hardware NSS Signal: Output
3. Konfigurasi Project Slave
a. Atur pin PB0 sebagai GPIO Output, level output High.
b. Atur pin PB1 sebagai GPIO Output, level output High.
c. Aktifkan SPI1 dengan pengaturan:
• Mode: Full Duplex Slave
• Hardware NSS Signal: Input
4. Setelah seluruh konfigurasi selesai, lakukan Generate Code untuk
masing-masing project.
Download File Analisa [klik disini]
Download Datasheet STM32F103C8 [klik disini]
Download Datasheet Resistor [klik disini]
Download Datasheet LED [klik disini]
Download Datasheet LDR [klik disini]
Download Datasheet Push Button [klik disini]
Komentar
Posting Komentar