- 26
- 37 268
Lies
Vietnam
Приєднався 8 сер 2014
lập trình thanh ghi STM32F103C8T6 #17 - I2C mềm
lập trình thanh ghi STM32F103C8T6 #17 - I2C mềm
Переглядів: 394
Відео
lập trình thanh ghi STM32F103C8T6 #16- USART/UART kết hợp DMA, tạo bus data 8bit parallel, ép xung
Переглядів 5579 місяців тому
) Nội dung: 00:00 truyền nhận uart1-uart2 bằng DMA 25:40 phân biệt sự kiện update và capture-compare trong timer1 34:40 tạo bus data 8 bit parallel bằng pwm timer1 cc-DMA 53:15 ép xung clock = 128MHz ) source code: drive.google.com/drive/folders/1qaPkybf9PgsV4p-r6tBMeEX0G_0lGqbk?usp=sharing ) donate: Vietcombank - 0491000165839 ) FB: profile.php?id=100004252248570 ) IAR: drive.goog...
lập trình thanh ghi STM32F103C8T6 #15- USART/UART
Переглядів 1,3 тис.9 місяців тому
) Nội dung: ) source code: drive.google.com/drive/folders/1zpxOBivDgf2bdhLVOiZtAf0YzKyS7KA3?usp=sharing ) FB: profile.php?id=100004252248570 ) IAR: drive.google.com/drive/folders/1GqaM7ATL0beE1SS8nxAbiTUh2m6iIxuo?usp=sharing ) Thư viện tham khảo: drive.google.com/drive/folders/1WsB2LdQyrurwk_YEkB3NdaxWkHQkLZnz?usp=sharing
lập trình thanh ghi STM32F103C8T6 #14- RTOS phần 3: Task_Create, Task_Delete, Task_DelayMs
Переглядів 34511 місяців тому
) Nội dung: ) source code: drive.google.com/drive/folders/1g7frYbIKgRQvSZgXNrf_sKWUTmTtE6Ka?usp=sharing ) FB: profile.php?id=100004252248570 ) ủng hộ: 0491000165839 - vietcombank ) IAR: drive.google.com/drive/folders/1GqaM7ATL0beE1SS8nxAbiTUh2m6iIxuo?usp=sharing ) Thư viện tham khảo: drive.google.com/drive/folders/1WsB2LdQyrurwk_YEkB3NdaxWkHQkLZnz?usp=sharing
lập trình thanh ghi STM32F103C8T6 #13- RTOS phần 2: chuyển đổi giữa 2 task
Переглядів 40711 місяців тому
) Nội dung: ) source code: drive.google.com/drive/folders/13MS9iuwqbRpy_1a0R6LmiJbeYPeEry3E?usp=sharing ) IAR: drive.google.com/drive/folders/1GqaM7ATL0beE1SS8nxAbiTUh2m6iIxuo?usp=sharing ) Thư viện tham khảo: drive.google.com/drive/folders/1WsB2LdQyrurwk_YEkB3NdaxWkHQkLZnz?usp=sharing
lập trình thanh ghi STM32F103C8T6 #12- RTOS phần 1: bẻ lái CPU cortex-m3
Переглядів 915Рік тому
) Nội dung: 00:30 RTOS là gì 02:50 giới thiệu project 05:10 cách hoạt động của CPU 13:50 xem các thanh ghi dùng chung trong IAR và thanh ghi PC 16:50 thanh ghi SP, hoạt động PUSH-POP trong ngắt 26:15 nhúng code asm vào .c 33:20 thoát ngắt system tick bằng mã asm = lỗi HardFault 36:25 copy code asm =)) để thoát ngắt 43:00 bẻ lái CPU một cách đơn giản nhất ) source code: drive.google.com/drive/fo...
lập trình thanh ghi STM32F103C8T6 #11- DMA
Переглядів 651Рік тому
) Nội dung: ) source code: drive.google.com/drive/folders/1kqDE3-8z7ghwaMld-2bmvWHm7V2iiMMb?usp=sharing ) IAR: drive.google.com/drive/folders/1GqaM7ATL0beE1SS8nxAbiTUh2m6iIxuo?usp=sharing ) Thư viện tham khảo: drive.google.com/drive/folders/1WsB2LdQyrurwk_YEkB3NdaxWkHQkLZnz?usp=sharing
lập trình thanh ghi STM32F103C8T6 #10- advance timer 1
Переглядів 923Рік тому
) Nội dung: ) source code: drive.google.com/drive/folders/1AneYA8mhI6rusJeLSNw2uJhDCHBZUpGa?usp=sharing ) IAR: drive.google.com/drive/folders/1GqaM7ATL0beE1SS8nxAbiTUh2m6iIxuo?usp=sharing ) Thư viện tham khảo: drive.google.com/drive/folders/1WsB2LdQyrurwk_YEkB3NdaxWkHQkLZnz?usp=sharing
lập trình thanh ghi STM32F103C8T6 #9- bắt tín hiệu điều khiển hồng ngoại (IR)
Переглядів 1,4 тис.Рік тому
) Nội dung: ) source code: drive.google.com/drive/folders/19p1cQfhxiBJKFljJEe4TGQbqEMdrH-14?usp=sharing ) IAR: drive.google.com/drive/folders/1GqaM7ATL0beE1SS8nxAbiTUh2m6iIxuo?usp=sharing ) Thư viện tham khảo: drive.google.com/drive/folders/1WsB2LdQyrurwk_YEkB3NdaxWkHQkLZnz?usp=sharing
lập trình thanh ghi STM32F103C8T6 #8- cortex-m3 system tick, pwm mềm, pwm nhiều động cơ servo
Переглядів 1,4 тис.Рік тому
) Nội dung: 00:00 ngoại vi cortex-m3: system tick và cấu trúc system tick 10:00 băm pwm cơ bản bằng biến đếm count 13:40 băm pwm bằng thay đổi thời gian ngắt timer 28:20 băm pwm điều khiển nhiều động cơ servo ) source code: drive.google.com/drive/folders/1v_1Hbhw-rFy04z94jse7IdZ3eDMsJLPr?usp=sharing ) IAR: drive.google.com/drive/folders/1GqaM7ATL0beE1SS8nxAbiTUh2m6iIxuo?usp=sharing ) Thư viện t...
#6.1 UART-Computer STM32F10x class 1
Переглядів 277Рік тому
drive.google.com/drive/folders/1n85GaZxf77zUDDaySa1BqHuYRvAasYIr?usp=sharing
#5.1 UART STM32F10x class 1
Переглядів 423Рік тому
cách tính BRR vẫn hợp lý, nhưng mình quên việc chia 16 nhé =)) drive.google.com/drive/folders/1eh5OMWTGvnrMiWGQVQcKuwDnlx3Q4Noc?usp=sharing
#4.1 DMA STM32F10x class 1
Переглядів 294Рік тому
drive.google.com/drive/folders/13R8euu4iv2dXytkciq0P42ATM0pWJ5s2?usp=sharing
#3.1 Ứng dụng GPIO-STK STM32F10x class 1
Переглядів 326Рік тому
drive.google.com/drive/folders/12CMAJrduNR3_XsZmbXttlhIT5okEmkDe?usp=sharing
lập trình thanh ghi STM32F103C8T6 #7- Cấu trúc clock (RCC)
Переглядів 1,7 тис.3 роки тому
lập trình thanh ghi STM32F103C8T6 #7- Cấu trúc clock (RCC)
lập trình thanh ghi STM32F103C8T6 #6- Truy cập từng bit thông qua bit-band
Переглядів 1,1 тис.3 роки тому
lập trình thanh ghi STM32F103C8T6 #6- Truy cập từng bit thông qua bit-band
lập trình thanh ghi STM32F103C8T6 #5- Đọc và xử lý nút nhấn
Переглядів 2,1 тис.3 роки тому
lập trình thanh ghi STM32F103C8T6 #5- Đọc và xử lý nút nhấn
lập trình thanh ghi STM32F103C8T6 #4- tạo project nếu sử dụng KeilC
Переглядів 1,9 тис.3 роки тому
lập trình thanh ghi STM32F103C8T6 #4- tạo project nếu sử dụng KeilC
lập trình thanh ghi STM32F103C8T6 #3- hoàn tất gpio.c & cải tiến blink-led
Переглядів 2,2 тис.3 роки тому
lập trình thanh ghi STM32F103C8T6 #3- hoàn tất gpio.c & cải tiến blink-led
lập trình thanh ghi STM32F103C8T6 #2- thư viện define.h & rút gọn TypeDef
Переглядів 6 тис.3 роки тому
lập trình thanh ghi STM32F103C8T6 #2- thư viện define.h & rút gọn TypeDef
lập trình thanh ghi STM32F103C8T6 #1- giới thiệu chung & GPIO
Переглядів 10 тис.3 роки тому
lập trình thanh ghi STM32F103C8T6 #1- giới thiệu chung & GPIO
em Hiển mafia internet ông trùm kéo view số 1 Việt Nam Chúc anh Lies sớm đạt 100 tr sub Chúc anh Lies bình an Chúc anh luôn 8386 Anh Lies mãi đỉnh mãi đỉnh
clgv :v
mic nhỏ quá anh ơi
Wooooowwwwwww
Lâu quá mới thấy bạn ra video mới
em mới xem video đầu cho em hỏi sao a k làm tiếp tục z ạ
Anh ơi, em đang làm chủ đề DAC , mục đích tạo sóng Sin , anh có nguồn nào tham khảo không ạ, em tìm tài liệu về lập trình thanh ghi về DAC của STM32f1 này ít quá ạ
tài liệu tốt nhất là reference manual rồi, có thể phối hợp cùng cube-mx rồi vào debug xem họ cấu hình thanh ghi ra sao để so sánh
a ơi e bị lỗi Fatal Error[Pe1696]: cannot open source file "rcc.h" , e định gắn link vào Preprocessor nhưng mở lên thì không thấy file rcc đâu là bị sao v a
trong link driver thư viện có mà bạn
@@lies9823 ko a , e có tải được rcc và lưu vào r nhưng nó vẫn báo lỗi như thế a ạ
@@DuongLehcsn bạn copy rcc.h rồi paste ở nhiều chỗ trong project xem
anh có thư viện i2c,spi,can ko ạ. Cho mượn để học tham khảo ạ
bạn giảng quá hay và logic
Anh cho em hỏi tạo project như thế nào để nó có file startup với file system vậy ạ?
file start-up là mình lấy từ trong project khi tạo bằng cube-mx nhé, file system là tự viết.
để cho nhanh thì bạn nên tạo 1 project mẫu có những file cơ sở, rồi mỗi project sau này copy là được
Anh cho em hỏi địa chỉ của thanh ghi flash này là bao nhiêu vậy ạ? Giống như GPIO có địa chỉ thì thằng flash này xem địa chỉ của nó là lấy ở đâu ạ?
trong datasheet hoặc reference manual, tìm memory map
Anh cho em hỏi là @0x407... có nghĩa là gì vậy anh, và từ khóa để hiểu về nó hơn ạ
đấy là địa chỉ của vùng thanh ghi ngoại vi
@@lies9823 dạ em biết là địa chỉ rồi, nhưng thay vì dùng @ thì mình có thể dùng phép gán cho biến hoặc gán cho con trỏ được không anh?
@@lies9823 Với cả em rất respect cái series này luôn ạ. Trong khi trên mạng toàn dùng những thư viện có sẵn như HAL. STD thì may mà có kênh anh để hiểu bản chất vấn đề. Hy vọng anh tiếp tục để mọi người học hỏi với ạ
@@chitran6879 1.chắc chắn là có, nếu làm theo chuẩn C, họ sẽ define: #define GPIOA (GPIO_TypeDef*)0x4... làm thế này có một nhược điểm chết người, đó là ví dụ cũng có 1 struct khác có 1 biến con thì ko thể đặt tên là GPIOA nữa 2. Có thể thay thế bằng cách gán biến con trỏ theo chuẩn C: extern GPIO_TypeDef *GPIOA; rồi trong một file khác có hàm phải gọi: GPIO_TypeDef *GPIOA; void Register_Init() { GPIOA = (GPIO_TypeDef *)0x4; } bù lại cách này tốn ram để lưu trữ các biến con trỏ
Nào anh làm 1 vid chia sẻ về cách tự học một con vi điều khiển cũng như cách đọc datasheet để ứng dụng vào cái mình cần đi anh
Anh hướng dẫn thêm về lập trình thanh ghi stm32f103c8 giao tiếp SPI, I2C, CAN với đc ko ạ
Mở tin nhắn đi anh, cho e hỏi cái này 😭
facebook.com/profile.php?id=100004252248570
Hôm trước a chặn face rồi
Á à thằng Dũng hả
ĐÚNG RỒI
@@nguyen3863 cái tội hỏi ngu :v
Hay quá a ơi! Anh làm thêm i2c nữa đi anh :D
dùng phần mềm IAR hay KeilC thuận tiện và phổ biến hơn ạ
KeilC phổ biến hơn
Hay, cho xin file arduino đi bạn.
Bạn làm video về stm32f1 rất hay và cô động. Chúc bạn vui vẻ thành công và ra thêm video về stm32.
dạ anh cho em hỏi làm sao để biết thanh ghi bsrr là unsigned short vậy ạ
bởi unsigned short là 2 byte, nó nằm trong thanh ghi 4 byte
Chào bạn mình có thể xin sđt. Để nhờ bạn viết code giúp đc ko. Mìn chả phí
0336.851.740. Chưa chắc đã viết được, nhưng em cứ mạnh dạn nghe đề bài cái đã =))
Anh làm đk động cơ bước bằng timer bằng cách điều chỉnh ARR chưa ạ?
hê hê, đang có prj làm, tạo pwm và dùng DMA đẩy dữ liệu vào ARR, chú ý xung cuối cùng phải đẩy giá trị nhỏ hơn giá trị trong thanh ghi CCR để pwm không còn hoạt động, hoặc tự render ra mảng dữ liệu tiếp theo cho DMA chạy kiểu circle mode (quay vòng)
@@lies9823 Có làm video ko anh? :p
@@lehuubaothuan8559 chừng nào vẽ xong cái mạch rồi tính tiếp :v
hay quá a ơi bung hết kiến thức luôn a kkkk a còn thiếu spi i2c usb can nhee
:v kiến thức cổ lỗ sĩ rồi, không bung thì giữ lại theo xuống mồ chắc
Còn phần sau nữa không anh ơi. Anh cho em hỏi khi học về STM32 thì nên sử dụng các thư viện có sẵn để code hay là code thanh ghi tự tạo thư viện rồi xài thư viện đó. Thì phương pháp nào tối ưu hơn ạ. Em xin cám ơn anh nhiều.
về cơ bản thì vẫn còn một đống video chưa làm :v với việc code ứng dụng thì nên dùng thư viện có sẵn để an toàn và nhanh. Còn việc code thanh ghi ntn dành cho anh em thích cày chuyên sâu, tận dụng tối đa sức mạnh con chip thôi, và đương nhiên sẽ khó hơn và dễ lỗi hơn nếu kiến thức không chắc.
theo mình sv mới ra trường đi phỏng vấn thì nên code thanh ghi để hiểu sâu hơn
@@ChienNguyen-dl5eq em nghĩ là tuỳ vào vị trí ứng tuyển chứ anh
@@thucngoxuan9011 mới ra trường thì có kinh nghiệm gì đâu nên họ cần mình hiểu sâu
woa, thế giới phát triển quá vậy?
mới mẻ quá
:v chỉ có mấy ông VN chơi công nghệ 198x, vọc vạch lcd 1602 thôi
Em thấy trong thư viện có I2C mà anh ko chỉ trên youtube ạ? :<
:v I2C ít dùng, có 1 example mình viết hẳn cấu hình I2C vào main luôn mà quên chưa bóc nó thành thư viện. Chắc tương lai sẽ giới thiệu đến mn sau
Anh lương 50tr chưa anh :((
chạy xe ôm nào được 50 củ mày :))))
hay quá a ơi, a có thế làm thêm video về đọc datasheet rồi lập trình thanh ghi của clock nữa thì tuyệt vời.
Có rồi ấy, mấy video trước đấy
hay quá a ơi
cái define.h là mình anh viết hay cả team v? Em mới sv năm 3 nên thấy cái này to quá
:v tôi tự viết từ a->z, viết được tool nên nó nhẹ hơn rất nhiều
Đm dễ vlon, kiếm j khó hơn cho em làm đê :v kekeke
được =)) dạo này đang nghiên cứu ethernet
giải thuật hay vl nhưng có cách nào làm cho giá trị lớn nhất đạt đến vô cùng thay vì 300 k bác
Hiện tại thì em chưa tìm được cách nào, có khi phải tự tạo ra một ngôn ngữ lập trình mới bác ạ
bạn ơi, tui không biết cách để gọi IOPB ấy, trong rcc.h tìm thì thấy APB2_ENR nằm trong 1 function hay mảng gì đấy tên là Bonion nhưng không biết gọi nó ra thế nào, phải làm sao để truy cập được IOPB thế bạn
RCC.APB2_ENR.BITS.IOPB = 1;
nó không phải mảng, mà là macro định nghĩa 1 cái union để có thể hoặc truy cập cả thanh ghi (RCC.APB2_ENR.REG) hoặc truy cập theo từng bit (RCC.APB2_ENR.BITS) ấy bạn
@@lies9823 tui nghĩ vấn đề của tui nằm ở việc truy cập thanh ghi RCC vì lỗi báo không xác định được thư viện "RCC" cụ thể là Error[Pe020]: identifier "RCC" is undefined . Bạn giúp tui chỗ này với
@@thanhsono3910 bạn đã tải file rcc.h, stm32f103c8t6.h và include vào project rồi chứ?
@@lies9823 à được rồi bạn ạ! tôi thêm __root __no_init RCC_TypeDef RCC @ 0x40021000; vào thay vì thêm thư viện stm32
thanks for sharing
Em không gọi được RCC.APB2ENR.BITS.IOPBEN cho em xin cách giải quyết ạ
nếu theo link thư viện mới thì nó sẽ là RCC.APB2_ENR.BITS.IOPB, quan trọng là chỉ thay đổi 1 chút tên thôi bạn
anh có thể cho e xin link file rcc trong video không ạ
trong phần mô tả video có đấy bạn, nó sẽ khác một chút về tên viết tắt, nhưng nhìn là biết
Xứng đáng lương 100 trịu
cho e xin facebook của a hỏi thêm về khóa học class 1 của a được ko ạ. ko thấy a làm về spi, i2c
i2c thì khó một chút, còn spi tương đối dễ, mình chỉ hướng dẫn cách mọi người làm và tìm kiếm thông tin/tài liệu thôi =))
@@lies9823 À OK a, đúng là theo tư duy của a viết driver sẽ dễ hơn nhiều khi dùng define và dịch bit. Cảm ơn a
Mong anh ra video về các protocol spi , uart , i2c ... ạ
e thấy cách tạo struct của a là tạo chi tiết luôn đúng ko ạ, e xem tài liệu thấy bên trong struct chỉ khai báo tên thanh ghi, sau đó sẽ ép kiểu địa chỉ thành kiểu con trỏ của struct đó, còn khi sử dụng thì dùng toán tử -> để truy cập, của a dùng toán tử '.' , a có thể làm video về các loại khai báo struct dc ko ạ
đúng r bạn, cách viết của họ thì phải #define rất nhiều, tốt nhất hạn chế define nhất vì rất khó đọc
đôi hôm đi ăn ở canteen phenikaa thấy anh =))
ghê vậy, nhận ra cơ à =)))
❤
Đi làm thì sẽ có framework có sẵn , vậy thì khi học mình nên code kiểu thanh ghi hay thư viện cho nhanh tiếp cận được công việc ở cty a ?. Mong a giải đáp giúp . E cảm ơn !!!
nếu học được thật sâu thì càng tốt bạn ạ, sau này nhìn code C cũng đoán được mã ASM, nhưng chắc chắn sẽ khó.
còn để phục vụ công việc và cứ mãi tàng tàng như vậy thì dùng thư viện cho khỏe và chạy ổn định. yếu tố cho một project thì thứ tự ưu tiên: chạy đúng > chạy ổn định > chạy nhanh
Tất cả video của bạn đều rất chất lượng. Mong bạn ra nhiều video hơn!
đẳng sờ cấp quá pro vip quá xứng đáng lương 100 củ
:v đm thằng này
👍👍👍👍👍👍👍👍👍👍👍
sau khi xem clip hướng dẫn rất chi tiết và tận tâm của Lies cũng như tải các file thư viện về cho đến giờ mình vẫn chưa làm cho con led nhấp nháy đc. lý do là vì file RCC tải về khác xa hoàn toàn so với clip hướng dẫn. đã mày mò đủ các kiểu mà vẫn chưa thông đc. mong Ad phản hồi gỡ rối tơ lòng. 😄cảm ơn Ad đã chia sẻ kiến thức.
=))) nếu bạn để ý thì sẽ thấy, thực ra nó chỉ khác khác ở phần đặt tên thanh ghi, tên bit, còn vị trí thì vẫn giống. trong lập trình thì hầu hết là nhìn đoán ý nghĩa chứ không thể chơi word by word được
còn đây là project blink led mẫu, theo thư viện mới để bạn tham khảo
drive.google.com/file/d/1M5ejPstmmO1BQq3eyoP-0Ux5E8DwCpGc/view?usp=sharing
@@lies9823 trong file rcc có khai báo file tên define.h mà tìm trong link driver ko có file này á a .
@@nmkhoaaa217 trong C/C++ > C99 > microcontroller > common > include bạn nhé
Anhcho em xin cú pháp sử dụng thư viện RCC mới với, em đang bị vướng không gọi RCC_TypeDef.APB2_ENR được
nó đang báo lỗi gì hả bạn?
Khi em ấn vào cái búa trong keil C mục target nó hiện Xtal undefined thì anh có biết fix k ạ, chỉ em với, thường thì sẽ nhập được số vào đó nhưng của em lại k được. Em cảm ơn
bạn thử vào preprocessor, rồi define lại XTAL thử xem, với xem lại crack được chưa
Cho mình xin cái datasheet của bạn được không mình tìm cái datasheet tới mục 8 là hết r :v ko thấy cái như của bạn á
thì của mình cũng đến mục 8 thôi mà