본문 바로가기

공부/STM32F1

(35)
30.[stm32f103][hal] us delay 만들기 0. 파일 1. STM32Cube 2. 파일 추가 3. 소스 main.c int main(void){ /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE B..
29.[stm32f103][hal] i2c_AT2402 eeprom 0. 파일 1. STM32Cube I2c 를 사용하려면 2가지 방법이 있습니다.첫번째는 GPIO를 사용하여 직접 제어 는장점 - Pull up 저항 안달아도됨 직관적인 제어 두번째는 내부 함수를 사용해서 제어하는 방법입니다.근데 하다보니 Clock Configuration 에서 2Mhz 이상 설정하면 I2C가 안되는 문제가 있는거 같습니다.그래서 위에 Cube 설정에서 2Mhz 로 맞춘 이유가 그것입니다. 2. 소스user_I2c.c #include "stm32f1xx_hal.h" int at24_HAL_WriteBytes(I2C_HandleTypeDef *hi2c,uint16_t DevAddress,uint16_t MemAddress, uint8_t *pData,uint16_t TxBufferSize)..
28.[stm32f103][hal] CDC-Virtual Port Com 0. driver 1. STM32 Cube 2. 소스 usbd_cdc_if.c static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) { /* USER CODE BEGIN 6 */ USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]); Buf[*Len] = 0; // last Add Null USBD_CDC_ReceivePacket(&hUsbDeviceFS); return (USBD_OK); /* USER CODE END 6 */ } main.c #include "main.h" #include "stm32f1xx_hal.h" #include "usb_device.h" /* USER CODE BEGIN Includes */ #def..
27.[stm32f103][hal] ADC (3) -DMA ADC 0. 파일 1. STM32CubeMx 2. 소스 설명 DMA 를 이용하여 arDMA1_ADC1[] 배열로 값을 저장 하고 64 번의 평균을 내서 USER.Adc 의 AvgADC 값에 저장한다. 3. Main.c /*Includes------------------------------------------------------------------*/ #include "main.h" #include "stm32f1xx_hal.h" /*USER CODE BEGIN Includes*/ #include "user_ADC_DMA.h" /*USER CODE END Includes*/ /*Private variables-------------------------------------------------------..
26.[stm32f103][hal] ADC (2) - Polling Multi 모드 1. STM32CubeMx 2. main.c int main(void) { /* USER CODE BEGIN 1 */ uint32_t ADC_Val[3]={0x0000,}; /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config()..
25.[stm32f103][hal] ADC (1) - Polling 모드 0. ADC 구성 ADC 는 3가지 모드로 구성되어 있습니다. - Polling 모드 - IT(인터럽트) 모드 - DMA 모드 Polling 모드부터 올릴 예정입니다. 1. STM32CubeMX 설정 single 모드 로 해봤습니다. 그리고 샘플링 시간 계산 입니다. 2. main.c int fputc(int ch, FILE *f) { uint8_t temp[1]={ch}; HAL_UART_Transmit(&huart1, temp, 1, 2); return(ch); } /* USER CODE END 0 */ int main(void) { /* USER CODE BEGIN 1 */ uint32_t ADC_Val=0; /* USER CODE END 1 */ /* MCU Configuration--------..
24.[stm32f103][hal] TFT LCD (구동칩ads7846) 터치 데이터 TFT 화면에 쓰기 1. 시작 23.[stm32f103][hal] TFT LCD (구동칩ads7846) 터치 하기 에서 했던 내용에 추가하여 진행했습니다. 2. 소스코드 위에 2개의 코드만 건들렸어요~~ 3. 추가내용 void TFT_Touch_Input(uint16_t colorfore, uint16_t colorback,uint8_t x_in,uint8_t y_in,uint32_t number,uint8_t zerofill,uint8_t digit){ unsigned char zero_flag, character; unsigned int div; foreground = colorfore; background = colorback; Xcharacter = x_in; Ycharacter = y_in; if((digit ==..
23.[stm32f103][hal] TFT LCD (구동칩ads7846) 터치 하기 1. STM32CubeMx 설정하기 2. 회로도 회로도를 보면 ADS7846을 보시면TS_INT -> PE4TS_CS -> PA4TS_SCK -> PA5 TS_MOSI -> PA6TS_MISO -> PA7 에 연결 되어 있습니다. 간단히 설명 하자면TS_INT 는 INPUT 으로 설정 되어 잇어서 터치를 하게 되면 이게 1-> 0으로 됩니다.TS_CS 는 1으로 해주면 나는 마스터!! 내말을 들어 이런 명령어 입니다.TS_SCK 는 클럭이겟죠~TS_MOSI 는 Master Out Slave In 입니다.TS_MISO 는 Master In Slave Out 입니다. 3. 소스 파일 4. 소스 설명우리의 통신의 순서는 클럭에 마춰서TS_MOSI 에 0x00D0 을 주고 0x00을 주면 TS_MISO 에서 값..