F๐Ÿ’ปW/๊ทธ ์™ธ 7

STM32 Clock Configuration System Clock ์„ค์ •

((stm32f103CBTx ๊ธฐ์ค€ ์ž‘์„ฑ )) ARM Cortex-M3 ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์™„์ „ ์ •๋ณต 1 - p.181 ์—์„œ,, USB๋ฅผ ์œ„ํ•œ 48 MHz Clock์€ main PLL์—์„œ ์ƒ์„ฑ๋˜๋Š”๋ฐ ์ด๋ฅผ ์œ„ํ•œ clock source๋Š” ๋ฐ˜๋“œ์‹œ HSE crystal oscillator๋ฅผ ์‚ฌ์šฉํ•ด์•ผ๋งŒ ํ•œ๋‹ค. HSE : ์™ธ๋ถ€ ํด๋Ÿญ HSI : ๋‚ด๋ถ€ ํด๋Ÿญ ((์œ„ ๊ทธ๋ฆผ์—์„œ HSI๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ์•ˆ๋ ํ…๋ฐ ์™œ ๋“ค์–ด๊ฐ„๊ฑฐ์ง€,,,)) ๋‚ด๋ถ€ ํด๋Ÿญ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธด ํ•˜์ง€๋งŒ ์ •ํ™•๋„๊ฐ€ ๋–จ์–ด์ง„๋‹ค

DMA - Dynamic Memory Access (MSP Init)

๋ฉ”๋ชจ๋ฆฌ์— ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” ๊ธฐ์ˆ  CPU์˜ ๊ฐœ์ž… ์—†์ด I/O ์žฅ์น˜์™€ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ํ—ˆ์šฉํ•˜๋Š” ๊ธฐ์ˆ  CPU๊ฐ€ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์•ˆ์—๋„ I/O ์žฅ์น˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ํ–ฅ์ƒ๋จ timers, ADC, SPIs. I2Cs, USARTs ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์œ„ ๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” MSP Init์„ ํ•ด์ค˜์•ผ ํ•จ. ์•„๋ž˜ ์˜ˆ์‹œ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด UART_MSPInit ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. (์ฃผ์˜ํ•  ์ ์€ ํ•˜๋‹จ์˜ __HAL_UART_ENABLE_IT(&huart1, UART_IT_RXNE); ๊ฐ€ ์•ˆ์จ์ ธ ์žˆ๋‹ค. ์จ์ค˜์•ผ UART์˜ ๋™์ž‘์ด ์ •์ƒ์ ์œผ๋กœ ๊ตฌํ˜„๋œ๋‹ค) void HAL_UART_MspInit(UART_HandleTypeDef* huart) { GPIO_InitTypeDef GPIO_InitS..

GPIO MODE์˜ ์ข…๋ฅ˜์™€ ์„ค๋ช…

gpioModeInputPull GPIO ํ•€์„ ์ž…๋ ฅ์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ํ’€์—… ์ €ํ•ญ์„ ํ™œ์„ฑํ™” gpioModeInputPullFilter GPIO ํ•€์„ ์ž…๋ ฅ์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ํ’€์—… ์ €ํ•ญ์„ ํ™œ์„ฑํ™”ํ•˜๋ฉฐ, ํ•€์˜ ์ „์••์ด ๋ณ€ํ•  ๋•Œ ์ž„๊ณ„๊ฐ’์„ ์„ค์ •ํ•˜์—ฌ ๋…ธ์ด์ฆˆ๋ฅผ ์ œ๊ฑฐ gpioModePushPull GPIO ํ•€์„ ์ถœ๋ ฅ์œผ๋กœ ์„ค์ •ํ•˜๊ณ , ํ•€์˜ ์ „์••์„ HIGH ๋˜๋Š” LOW๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ. GPIO ํ•€์˜ ์ถœ๋ ฅ ๋“œ๋ผ์ด๋ฒ„์˜ ์ „์•• ๊ฐ•๋„(drive strength)๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ. gpioModePushPullDrive GPIO ํ•€์„ ์ถœ๋ ฅ์œผ๋กœ ์„ค์ •ํ•˜๊ณ , ํ•€์˜ ์ „์••์„ HIGH ๋˜๋Š” LOW๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ gpioModeWiredAnd Open-drain output gpioModeWiredOr GPIO ํ•€์„ ์ถœ๋ ฅ์œผ๋กœ ์„ค์ •ํ•˜๊ณ , ํ•€์˜ ์ „์••์„ HI..

๋™๊ธฐ / ๋น„๋™๊ธฐ / UART / I2C / I2S / SPI

# ๋™๊ธฐ / ๋น„๋™๊ธฐ ์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ, ๋™๊ธฐ ๋ฐฉ์‹์€ ์‘๋‹ต์ด ๋Œ์•„์™€์•ผ ๋‹ค์Œ ๋™์ž‘์ด ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ. ์‘๋‹ต ์˜ฌ ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•ด์•ผํ•จ ํ•˜๋‚˜์˜ ๊ธฐ์ค€ ํด๋Ÿญ ๋น„๋™๊ธฐ ๋ฐฉ์‹์€ ์‘๋‹ต๊ณผ ์ƒ๊ด€์—†์ด ๋‹ค์Œ ๋™์ž‘ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ. ๋™๊ธฐ ๋ฐฉ์‹ Synchronous RX/TX ๋ผ์ธ ๋ณ„๋„๋กœ ์กด์žฌํ•ด์•ผํ•จ(full-duplex) clock line ์กด์žฌ. ๊ธฐ์ค€ ํด๋Ÿญ์œผ๋กœ ๋™๊ธฐ ์‹ ํ˜ธ์— ๋งž์ถฐ ๋™์ž‘ ๋ธ”๋ก๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก ๋น„๋™๊ธฐ ๋ฐฉ์‹ Asynchronous ํด๋Ÿญ์— ์ƒ๊ด€์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก string ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก 7~8๋น„ํŠธ์˜ ๋ฌธ์ž๊ฐ€ ๋ชจ์—ฌ์•ผ ์ „์†กํ•˜๋Š”๋ฐ, ์ด๋•Œ ์•ž ๋’ค๋กœ ์‹œ์ž‘๋น„ํŠธ์™€ ์ •์ง€๋น„ํŠธ๋กœ ๊ตฌ์„ฑ๋จ # ํ†ต์‹  ๋ฐฉ์‹ UART ๊ณ ์ „์ ์ธ ์‹œ๋ฆฌ์–ผ ํ†ต์‹  ๋ฐฉ์‹ RX/TX ๋ผ์ธ์ด ๋ณ„๋„๋กœ ์กด์žฌํ•˜๋Š” ์–‘๋ฐฉํ–ฅ ํ†ต์‹  **Baud rate ํ•„์ˆ˜์ ์œผ๋กœ ๋งž์ถฐ์•ผ ํ•จ clock line ํ•„์š” ์—†์Œ..