Electoday 2025

ไมโครคอนโทรลเลอร์ => ARM Processors => Topic started by: Jeang9984 on March 06, 2018, 04:25:26 PM

Title: แนะนำหนังสือการใช้งานไมโครคอนโทรลเลอร์STM32+ภาษาที่ต้องใช้งาน
Post by: Jeang9984 on March 06, 2018, 04:25:26 PM
ต้องการ หนังสือ หรือเอกสารสอนการใช้งานไมโครคอนโทรลเลอร์ เริ่มจาก0เลยครับ ไม่มีพื้นฐานด้านนี้เลย โปรแกรมที่ใช้ STM32CubeMX+Systemworkbench บอร์ดSTM32F3-Discovery
Title: Re: แนะนำหนังสือการใช้งานไมโครคอนโทรลเลอร์STM32+ภาษาที่ต้องใช้งาน
Post by: dec on March 07, 2018, 01:10:21 PM
STM32CubeMX กับ System Workbench for STM32 ดูเหมือนจะยังไม่มีหนังสือเล่มไหนออกมานะครับ

หนังสือที่มีอย่างเช่น ปฏิบัติการไมโครคอนโทรลเลอร์ ARM Cortex-M3 เอง มันอ้างอิงจากชิป STM32F1 ซึ่งก็เก่ามากแล้ว
มันไม่ได้สอนใช้งาน STM32CubeMX กับ System Workbench for STM32 ด้วย

จะเริ่่มหัดเขียน STM32 โดยใช้ Library จาก ST (STM32Cube) ตั้งแต่ 0 ในช่วงนี้อาจจะลำบากหน่อย
เพราะเดี๋ยวนี้ไม่ค่อยได้รับความนิยมในหมู่ Hobby แล้ว เทรนตอนนี้มันไปทาง Arduino และ Raspberry Pi
หรือไม่ก็ใช้พวก STM32duino (เอา Arduino IDE เขียนโปรแกรมลง STM32 : http://www.stm32duino.com)
กับ mbed (เป็น Platform สำหรับ ARM Cortex-M ที่พัฒนาโดย ARM เอง ใช้ภาษา C++ เหมือน Arduino)
แต่ในโปรดักชั่นก็ยังมีการใช้ Library จาก ST กันอยู่ เพราะไม่มีปัญหาเรื่องลิขสิทธิ์ดี

------------

ถ้าต้องการจะใช้งาน STM32CubeMX กับ System Workbench for STM32 จริงๆ ซึ่งที่พอจะแนะนำได้คือให้หัดใช้
System Workbench for STM32 ก่อน ซึ่งเป็น IDE ที่ใช้งานยากหน่อย ควรจะมีพื้นฐานในการใช้งาน Eclipse
และการใช้งาน makefile มาก่อน เพราะตัวมันเองก็เป็น Eclipse + Compiler arm-none-eabi + openocd + plugin ที่พัฒนาโดย AC6
ซึ่งมีข้อดีตรงที่เป็น IDE ฟรี

เริ่มแรกยังไม่ต้องสร้าง Project อะไร ไปโหลด STM32CubeF3 มาก่อน แล้วพยายาม Import ตัวอย่างที่อยู่ใน
Project/ชื่อบอร์ด/Example เข้ามาใน System Workbench for STM32 ตามลิ้ง

http://www.openstm32.org/Importing%2Ba%2BSTCubeMX%2Bgenerated%2Bproject

จนสามารถ Build และเข้า Debug Mode ได้ ตอนนี้ควรทำการคุ้นเคยกับชิป STM32 ไปก่อน โดยการแก้โปรเจ็กตัวอย่างนี่แหละ
Peripheral พื้นฐานที่ควรรู้และใช้งานเป็นในตอนแรกคือ GPIO กับ EXTI, USART, TIM, SPI และ I2C
ลองศึกษาและปรับแก้มันให้ได้การทำงานอย่างที่ต้องการไปก่อนเชี่ยวชาญระดับหนึ่งแล้วค่อยไปใช้ STM32CubeMX
ในการสร้าง Project เองตามคลิปนี้

https://www.youtube.com/watch?v=BJdXR0Al6os

สร้าง Project แล้วก็ Import เข้า System Workbench for STM32 เหมือนกับทำ Project  ตัวอย่างนั่นแหละครับ
Title: Re: แนะนำหนังสือการใช้งานไมโครคอนโทรลเลอร์STM32+ภาษาที่ต้องใช้งาน
Post by: TaoTao on March 16, 2018, 04:41:52 PM
System Workbench อยากใช้งานเป็นจัง
ลองเล่นละ ลงและลบ.. ตั้งหลายรอบ Tool เยอะดีแท้ ตาลายเจงๆ
ไม่ไหว หรือเราคงแก่ละ  ::)

เคยได้ใช้ ไอ้ อะไรนะ coco cookcook ไรนี้แหล่ะ แต่ก็ ไม่เข้ามือ

สุดท้ายเลย สำหรับผม จบที่ CUBE + KEIL  ;D
ตัวฟรี.. ได้ที่ 32kB ครับ ถ้าโปรเจคไม่ใหญ่
และไม่ได้มีโคด เกี่ยวกับ String - ตัวอักษร อะไรมากมายน่าจะเพียงพอ

ลอง CUBE + KEIL ไหมครับ
ถ้าว่างเดี๋ยวอาจทำ คลิปสั้นๆ สอนเบื้องต้นให้
เบื้องต้นจริงๆ นะ เพราะเป็นแค่นี้ ไม่ได้เรียนมาทางนี้  ;D

อาจจะ 32F051 32F103C8 ไม่ก็ 32F030 คือบอร์ดที่มีในมือ
รับรอง ใช้งานมันได้ ภายใน 10 นาที

ส่วนสำคัญสุด ที่ต้องเข้าใจผมว่า คือคำสั่ง "ระดับบิต" คือ & กับ |
และ C-Language ครับ ถ้าได้ก็ง่ายแล้วขึ้นแหล่ะ
อย่าง C สมัยผม ไม่มีเรียน เรียนมาแต่ Pascal

เช่นว่า ต้องการ ไอ้บิตตัวนี้เป็น 0 หรือ เป็น 1 ต้องทำไง ประมาณนี้
อีกหัวข้อ อันนี้ ต้องรู้ มันคือพระเอกเลย.. การ Interrupt ครับ ได้ใช้แน่นอน

ทีนี้ อยากใช้ Function อะไร เปิด DataSheet + RefMan
และอาจพ่วงด้วย Errata เพราะบางที Product เค้าเอง ก็มีจุดอ่อน-บกพร่อง ด้านนั้นๆ
แล้ว พิมพ์ตามมันเลย นี่คือวิธีที่ผมใช้นะ

เพราะ CUBE เอง ไม่สมบูรณ์ทุก Feature นะครับ
แต่ช่วย Initial ได้ดีมาก ซึ่งมาครึ่งทางแล้วแหล่ะ

ที่เหลือ เราอาจต้อง สร้างเอง.. ด้วยแรงตัณหา ครับ  ;D
Title: Re: แนะนำหนังสือการใช้งานไมโครคอนโทรลเลอร์STM32+ภาษาที่ต้องใช้งาน
Post by: TaoTao on March 16, 2018, 06:19:36 PM
อ้อ STM ดีอยู่อย่าง เอาให้แน่นๆ สักเบอร์นึงพอครับ
เบอร์ที่ Feature ครบๆ จะดีมาก เช่น มี ADC DAC SPI I2C AWU RTC นึกไม่ออกละ
ทีนี้ หากจำเป็นต้องใช้เบอร์อื่นๆ สบายเลย

มันแกะกันมาเกือบทั้งหมด ต่างตระกูล.. ต่างเพียงชื่อ bit.. เท่านั้นเอง
Title: Re: แนะนำหนังสือการใช้งานไมโครคอนโทรลเลอร์STM32+ภาษาที่ต้องใช้งาน
Post by: TaoTao on March 16, 2018, 07:29:19 PM
อันนี้ ดีครับ เข้าใจง่ายดี
https://exultima.wordpress.com/2012/02/22/how-ccompiler-and-linker-work/
Title: Re: แนะนำหนังสือการใช้งานไมโครคอนโทรลเลอร์STM32+ภาษาที่ต้องใช้งาน
Post by: S.poolpong93 on March 21, 2018, 02:31:41 PM
Quote from: TaoTao on March 16, 2018, 04:41:52 PM
System Workbench อยากใช้งานเป็นจัง
ลองเล่นละ ลงและลบ.. ตั้งหลายรอบ Tool เยอะดีแท้ ตาลายเจงๆ
ไม่ไหว หรือเราคงแก่ละ  ::)

เคยได้ใช้ ไอ้ อะไรนะ coco cookcook ไรนี้แหล่ะ แต่ก็ ไม่เข้ามือ

สุดท้ายเลย สำหรับผม จบที่ CUBE + KEIL  ;D
ตัวฟรี.. ได้ที่ 32kB ครับ ถ้าโปรเจคไม่ใหญ่
และไม่ได้มีโคด เกี่ยวกับ String - ตัวอักษร อะไรมากมายน่าจะเพียงพอ

ลอง CUBE + KEIL ไหมครับ
ถ้าว่างเดี๋ยวอาจทำ คลิปสั้นๆ สอนเบื้องต้นให้
เบื้องต้นจริงๆ นะ เพราะเป็นแค่นี้ ไม่ได้เรียนมาทางนี้  ;D

อาจจะ 32F051 32F103C8 ไม่ก็ 32F030 คือบอร์ดที่มีในมือ
รับรอง ใช้งานมันได้ ภายใน 10 นาที

ส่วนสำคัญสุด ที่ต้องเข้าใจผมว่า คือคำสั่ง "ระดับบิต" คือ & กับ |
และ C-Language ครับ ถ้าได้ก็ง่ายแล้วขึ้นแหล่ะ
อย่าง C สมัยผม ไม่มีเรียน เรียนมาแต่ Pascal

เช่นว่า ต้องการ ไอ้บิตตัวนี้เป็น 0 หรือ เป็น 1 ต้องทำไง ประมาณนี้
อีกหัวข้อ อันนี้ ต้องรู้ มันคือพระเอกเลย.. การ Interrupt ครับ ได้ใช้แน่นอน

ทีนี้ อยากใช้ Function อะไร เปิด DataSheet + RefMan
และอาจพ่วงด้วย Errata เพราะบางที Product เค้าเอง ก็มีจุดอ่อน-บกพร่อง ด้านนั้นๆ
แล้ว พิมพ์ตามมันเลย นี่คือวิธีที่ผมใช้นะ

เพราะ CUBE เอง ไม่สมบูรณ์ทุก Feature นะครับ
แต่ช่วย Initial ได้ดีมาก ซึ่งมาครึ่งทางแล้วแหล่ะ

ที่เหลือ เราอาจต้อง สร้างเอง.. ด้วยแรงตัณหา ครับ  ;D

รอชมคลิปครับ
Title: Re: แนะนำหนังสือการใช้งานไมโครคอนโทรลเลอร์STM32+ภาษาที่ต้องใช้งาน
Post by: TaoTao on August 17, 2018, 08:48:04 AM
Quote from: S.poolpong93 on March 21, 2018, 02:31:41 PM
Quote from: TaoTao on March 16, 2018, 04:41:52 PM
System Workbench อยากใช้งานเป็นจัง
ลองเล่นละ ลงและลบ.. ตั้งหลายรอบ Tool เยอะดีแท้ ตาลายเจงๆ
ไม่ไหว หรือเราคงแก่ละ  ::)

เคยได้ใช้ ไอ้ อะไรนะ coco cookcook ไรนี้แหล่ะ แต่ก็ ไม่เข้ามือ

สุดท้ายเลย สำหรับผม จบที่ CUBE + KEIL  ;D
ตัวฟรี.. ได้ที่ 32kB ครับ ถ้าโปรเจคไม่ใหญ่
และไม่ได้มีโคด เกี่ยวกับ String - ตัวอักษร อะไรมากมายน่าจะเพียงพอ

ลอง CUBE + KEIL ไหมครับ
ถ้าว่างเดี๋ยวอาจทำ คลิปสั้นๆ สอนเบื้องต้นให้
เบื้องต้นจริงๆ นะ เพราะเป็นแค่นี้ ไม่ได้เรียนมาทางนี้  ;D

อาจจะ 32F051 32F103C8 ไม่ก็ 32F030 คือบอร์ดที่มีในมือ
รับรอง ใช้งานมันได้ ภายใน 10 นาที

ส่วนสำคัญสุด ที่ต้องเข้าใจผมว่า คือคำสั่ง "ระดับบิต" คือ & กับ |
และ C-Language ครับ ถ้าได้ก็ง่ายแล้วขึ้นแหล่ะ
อย่าง C สมัยผม ไม่มีเรียน เรียนมาแต่ Pascal

เช่นว่า ต้องการ ไอ้บิตตัวนี้เป็น 0 หรือ เป็น 1 ต้องทำไง ประมาณนี้
อีกหัวข้อ อันนี้ ต้องรู้ มันคือพระเอกเลย.. การ Interrupt ครับ ได้ใช้แน่นอน

ทีนี้ อยากใช้ Function อะไร เปิด DataSheet + RefMan
และอาจพ่วงด้วย Errata เพราะบางที Product เค้าเอง ก็มีจุดอ่อน-บกพร่อง ด้านนั้นๆ
แล้ว พิมพ์ตามมันเลย นี่คือวิธีที่ผมใช้นะ

เพราะ CUBE เอง ไม่สมบูรณ์ทุก Feature นะครับ
แต่ช่วย Initial ได้ดีมาก ซึ่งมาครึ่งทางแล้วแหล่ะ

ที่เหลือ เราอาจต้อง สร้างเอง.. ด้วยแรงตัณหา ครับ  ;D

รอชมคลิปครับ
ผิดจากที่เคยบอกไว้ ว่า 10 นาที เพราะคอมผม ไม่มีไมล์ เลยพิมพ์เอา
ขี้เกียจหาสาเหตุ ตอนท้ายๆ คลิปครับ
อยากรู้ว่า สาเหตุอะไร ลองชมครับ  O_o!
https://youtu.be/QZGfhKpoJFE