Skip to main content

Dùng Arduino IDE để lập trình cho board STM8S103

Board STM8S103 có thể dễ dàng được lập trình với Arduino IDE giúp bạn nhanh chóng thử nghiệm dự án của mình mà không phải cài đặt các phần mềm và thư viện phức tạp khác. Làm theo các bước sau đây để nạp code cho một board STM8S103 có thể nhấp nháy đèn LED on-board.

Để làm theo hướng dẫn này bạn cần phải có 1 board mạch STM8S103F3P6, 1 mạch nạp ST-Link V2 mini. Kết nối phần cứng như sau, bên trái là mạch nạp ST-Link V2 mini, bên phải là board STM8S103

3.3V <===> 3V3
SWIM <===> SWIM
GND <===> GND
RST <===> NRST

ST-Link V2 mini
STM8S103 Board

Mở Arduino IDE, vào File > Preferences. Ở chỗ Additional Boards Manager URLs thêm vào dòng này "https://github.com/tenbaht/sduino/raw/master/package_sduino_stm8_index.json". Nếu ở ô text đã có sẵn những url khác thì bạn di chuyển con nháy (carret) đến cuối thêm dấu "," URL ở trên (xem hình dưới hoặc xem video ở cuối bài viết để biết cách làm).

github.com/tenbaht/sduino/raw/master/package_sduino_stm8_index.json

Vào menu Tools > Board > Boards Manager để mở cửa sổ Boards Manager. Trong cửa sổ Boards Manager nhập "stm8" vào ô tìm kiếm và cài đặt (install) thư viện "Sduino STM8 plain C core (non-C++)".

Sduino STM8 plain C core

Vào menu Tools > Board > STM8S Boards chọn STM8S103F3 Breakout Board như hình dưới

STM8S103F3 Breakout Board
 

Vào Tools > Programmer chọn ST-Link/V2.1 (Nếu V2.1 không hoạt động, bạn có thể thử với V2 hoặc V1)

ST-Link/V2.1

Cuối cùng bạn vào menu File > Examples > Basic > Blink để mở chương trình nhấp nháy LED và nhấn vào nút Upload trên thanh toolbar để nạp chương trình và xem kết quả


Còn đây là sơ đồ chân của board STM8SF103

STM8S103 Pinout


Comments

Post a Comment

Popular posts from this blog

Arduino Nano nạp code không được

Tình trạng Khi bạn nạp code cho arduino nano, IDE sẽ hiển thị là Uploading... rất lâu sau đó báo lỗi: avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: s...

STM32F103C8T6 lỗi không nạp được code

Tình trạng Sau khi nạp code lần đầu, STM32 ST-Link Utility sẽ không kết nối được nữa và hiện lên thông báo lỗi: Cannot connect to target! Please select "Connect Under Reset" mode from Target -> Settings menu and try again. If you are trying to connect to low frequency application, please select a lower SWD Frequency mode from Target -> Settings menu. Tình trạng này có thể xảy ra với tất cả các dòng F1 và cách khắc phục cũng tương tự nhau. Khắc phục 1. Trong STM32CubeMX cần phải chọn lại trong SYS > Debug là Serial Wire sau đó generate lại code. 2. Board arm kết nối ST-Link Utility không được, lúc đó hãy nhấn giữ nút Reset trên board rồi nhấn nút Connect trên ST-Link Utility, chờ khoảng 3-5 giây sau đó thả nút Reset. Có thể bạn sẽ phải làm vài lần như vậy mới có được 1 lần kết nối thành công. 3. Sau khi kết nối thành công, nạp code mới có config Debug là Serial Wire ở trên. Khi đó board sẽ kết nối bình thường cho các lần tiếp theo Mạch nạp ST-LINK có thể m...

Dùng mạch nạp USBasp để nạp code cho Arduino

Arduino có thể dễ dàng nạp code và chạy chương trình chỉ với thao tác đơn giản cắm board mạch vào máy tính chọn cổng COM và nhấn nút Upload. Để làm được như vậy, bên trong chip vi xử lý được nạp sẵn một đoạn mã lệnh gọi là boot loader. Boot loader luôn luôn được chạy lên đầu tiên, sau đó mới chuyển quyền điều khiển lại cho phần mã của người dùng nạp vào.   Như vậy để các Chip Arduino có thể làm việc được với Arduino IDE thông qua giao tiếp USB-COM thì trong vi điều khiển phải được nạp sẵn boot loader. Các board mạch Arduino bán sẵn trên thị trường như Arduino Uno, Arduino Nano, Arduino Mega 2560,... đều được nạp sẵn boot loader. Như vậy ưu điểm của boot loader là để người dùng dễ dàng tiếp cận, thử nghiệm, và làm ra được sản phẩm nhanh chóng, dễ dàng. Nhưng nhược điểm là boot loader luôn luôn cần một khoảng thời gian từ 1.6s đến 2s để khởi động. Nếu bạn không muốn mất 1.6 - 2s đầu tiên mà muốn chương trình chạy gần như ngay lập tức khi cấp nguồn hoặc reset thì dùng mạch nạp USBasp ...