|
USB របស់ STM32F103C8T6 |
STM32F103C8T6 ឬគេហៅឈ្មោះកាត់ថា Blue Pill មានភ្ជាប់មកជាមួយនឹង USB មួយដែលមិនដំណើរការ។ តាមពិតទៅ USB នេះជា Programmable Port មានន័យថាជា USB ដែលដំណើរការទៅតាមការសរសេរកូដឲ្យវាដំណើរការជាមុខងារណាមួយ មិនមែនជា USB សម្រាប់តែបញ្ចូលកូដនោះទេដូច Arduino នោះទេ។
|
Unknown USB ដោយសារតែមិនទាន់មាន Firmware ឲ្យ USB ដំណើរការ |
នៅក្នុងអត្ថបទនេះនឹងប្រើនិយាយពីការប្រើប្រាស់ STM32CubeIDE ដើម្បីធ្វើការកំណត់ និងសរសេរកូដឲ្យដំណើរការ ជា Serial USB។
|
ឧបករណ៍ដែលត្រូវការ |
ភ្ជាប់ STM32F103C8T6 ជាមួយនឹង ST-LINK V2 ដូចរូបខាងក្រោម៖
បង្កើត Project នៅក្នុង STM32CubeIDE រួចចូលទៅក្នុង Pinout & Configuration :
|
កំណត់ Debug Serial Wire ប្រើជាមួយ ST-LNIK |
|
កំណត់ RCC Mode |
|
បើកដំណើរការ USB Device |
|
កំណត់មុខងាររបស់ USB ជា Communication Device |
|
Pinout View ដែលបានបើកដំណើរការ USB លើជើង PA11 និង PA12 |
|
Clock Configuration ដែលបានមកពី Auto-Generated |
បន្ទាប់ពីបានធ្វើការកំណត់បានត្រឹមត្រូវនៅក្នុង CubeMX ហើយ ធ្វើការ Generate កូដទៅកាន់ IDE៖
|
មើលនៅក្នុង usbd_cdc_if.c ដែលមាន Function ដូចនៅក្នុង Outline |
ធ្វើការលើកឧទាហរណ៍អោយ STM32F103C8T6 សរសេរអក្សរតាម USB Serial ទៅកាន់កុំព្យូទ័រដោយប្រើប្រាស់ CDC_Transmit_FS(uint8_t* Buf, uint16_t Len)។
- បញ្ជូល #include "usbd_cdc_if.h" ទៅក្នុង main.c
- នៅត្រង់ USER CODE BEGIN 2 បង្កើត Variable មួយដែលផ្ទុកទិន្ន័យដែលនឹងត្រូវបញ្ជូនតាម Serial ទៅ។
- នៅត្រង់ USER CODE BEGIN 3 ធ្វើការបញ្ជូន Serial ដោយប្រើ CDC_Transmit_FS និងបិទបើក LED មួយគ្រាប់លើជើង PC13។
យើងបានកូដដូចខាងក្រោម៖
uint8_t buff[]="This is STM32.\n";
while (1)
{
CDC_Transmit_FS(buff, sizeof(buff));
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
HAL_Delay(500);
}
បន្ទាប់ពីបានសរសេរនឹងបញ្ចូលកូដទៅនៅក្នុង STM32F103C8T6 តាមរយៈ ST-LINK រួចមក ដោត Micro USB ពី STM32F103C8T6 ទៅកាន់កុំព្យូទ័រ នោះកុំព្យូទ័រនឹងស្គាល់ STM32F103C8T6 ថាជា
USB Serial Device ទៅតាមការកំណត់របស់យើង។
|
Windows 10 ស្គាល់ STM32 ជា USB Serial Device (COM3)
|
|
អាចប្រើប្រាស់កម្មវិធី Putty ដើម្បីបើកមើល Serial តាម COM3 speed 9600 |
|
ទិន្ន័យដែលមើលតាម Putty ចេញពី STM32F103C8T6 |
|
ហើយក៏អាចប្រើ Serial Monitor របស់ Arduino បានផងដែរ |