HOLTEK HT32 MCU UART აპლიკაციის შენიშვნა მომხმარებლის სახელმძღვანელო
შესავალი
უნივერსალური ასინქრონული მიმღები/გადამცემი - UART არის ფართოდ გამოყენებული სერიული გადაცემის ინტერფეისი, რომელიც უზრუნველყოფს მონაცემთა მოქნილ ასინქრონულ სრულ დუპლექს გადაცემას. ამ აპლიკაციის ჩანაწერში მოწოდებული „Module_UART“ აპლიკაციის კოდი იყენებს TX/RX შეფერხებებს პროგრამული რგოლის ბუფერებთან, მარტივი UART გადაცემის/მიღების ფუნქციების განსახორციელებლად API-ების მეშვეობით, რომელთა დაკავშირებული ფუნქციები აღწერილია ქვემოთ. ეს გაამარტივებს მონაცემთა გადაცემის მთელ პროცესს და მომხმარებლებს საშუალებას მისცემს სწრაფად გაიგონ და განახორციელონ UART საკომუნიკაციო აპლიკაციები.
- გადაცემის/მიღების ფუნქციები: ბაიტის წაკითხვა, ბაიტის ჩაწერა, ბუფერული წაკითხვა, ბუფერული ჩაწერა და ა.შ.
- სტატუსის ფუნქციები: მიიღეთ ბუფერის სიგრძე, TX სტატუსი და ა.შ.
ეს დოკუმენტი პირველად შემოიღებს UART საკომუნიკაციო პროტოკოლს, რომელიც დაეხმარება მომხმარებლებს უკეთ გაიგონ UART კომუნიკაცია პრინციპიდან აპლიკაციამდე. ამას მოჰყვება აპლიკაციის კოდისთვის საჭირო რესურსების ჩამოტვირთვა და მომზადება, მათ შორის პროგრამული უზრუნველყოფის ბიბლიოთეკა, აპლიკაციის კოდის ჩამოტვირთვა, file და დირექტორიას კონფიგურაცია, ასევე შესავალი ტერმინალის პროგრამული ხელსაწყოზე, რომელიც გამოიყენება განაცხადის შენიშვნაში. ფუნქციური აღწერილობის თავში წარმოდგენილი იქნება აპლიკაციის კოდის დირექტორიას სტრუქტურა, პარამეტრის პარამეტრები და API აღწერა. API-ს გამოყენება აღწერილი იქნება „Module_UART“ აპლიკაციის კოდის გამოყენებით და ასევე ჩამოთვლილი იქნება API-სთვის საჭირო Flash/RAM რესურსის მოხმარება. გამოყენების ინსტრუქციის თავი მიმართავს მომხმარებელს გარემოსდაცვითი მომზადების, შედგენისა და ტესტირების საფეხურებზე, რათა დაადასტუროს, რომ განაცხადის კოდი სწორად იმუშავებს. შემდეგ ის მოგაწვდით ინსტრუქციებს, რომლებიც განმარტავს, თუ როგორ უნდა მოხდეს API-ების ინტეგრირება მომხმარებლის პროექტებში და ბოლოს მიაწოდოს მინიშნება ცვლილებებისა და საერთო პრობლემების შესახებ, რომლებიც შეიძლება შეგვხვდეს.
გამოყენებული აბრევიატურა:
- UART: უნივერსალური ასინქრონული მიმღები/გადამცემი
- API: აპლიკაციის პროგრამირების ინტერფეისი
- LSB: ნაკლებად მნიშვნელოვანი
- MSB: ყველაზე მნიშვნელოვანი ბიტი
- კომპიუტერი: პერსონალური კომპიუტერი
- SK: Starter Kit, HT32 განვითარების დაფა
- IDE: ინტეგრირებული განვითარების გარემო
UART საკომუნიკაციო პროტოკოლი
UART არის სერიული საკომუნიკაციო ტიპის ინტერფეისი, რომელიც ახორციელებს მონაცემთა პარალელურად სერიულ კონვერტაციას მის გადამცემზე და შემდეგ სერიულად დაუკავშირდება მსგავს მიმღებს. შემდეგ მიმღები ახორციელებს მონაცემთა სერიულ პარალელურად გადაქცევას მონაცემთა მიღების შემდეგ. სურათი 1 გვიჩვენებს სერიული კომუნიკაციის სქემატურ დიაგრამას, რომელიც გვიჩვენებს, თუ როგორ ხდება მონაცემების გადაცემა ბიტიური თანმიმდევრობით. ამრიგად, გადამცემსა და მიმღებს შორის ორმხრივი კომუნიკაციისთვის, მხოლოდ ორი მავთული, TX და RX, საჭიროა მონაცემთა სერიულად გადასაცემად ერთმანეთს შორის. TX არის პინი, რომელზეც UART გადასცემს სერიულ მონაცემებს და დაკავშირებულია მიმღების RX პინთან. ამიტომ, გადამცემმა და მიმღებმა მოწყობილობებმა უნდა დააკავშირონ თავიანთი TX და RX პინები, რათა განახორციელონ UART ორმხრივი კომუნიკაცია, როგორც ნაჩვენებია ფიგურა 2.
სურათი 1. სერიული კომუნიკაციის დიაგრამა
სურათი 2. UART მიკროსქემის დიაგრამა
UART სერიული კომუნიკაციის დროს მონაცემთა გადაცემა ასინქრონულია. ეს ნიშნავს, რომ არ არის საათის ან სხვა სინქრონიზაციის სიგნალი გადამცემსა და მიმღებს შორის. აქ გამოიყენება ბაუდის სიჩქარე, რომელიც არის მონაცემთა სერიული გადაცემის/მიღების სიჩქარე და რომელიც მითითებულია ორივე მხარის მიერ მონაცემთა გადაცემის წინ. გარდა ამისა, სპეციალური ბიტები, როგორიცაა დაწყების და გაჩერების ბიტები, ემატება მონაცემთა პაკეტის დასაწყისსა და ბოლოს, რათა შეიქმნას სრული UART მონაცემთა პაკეტი. სურათი 3 გვიჩვენებს UART მონაცემთა პაკეტის სტრუქტურას, ხოლო ფიგურა 4 აჩვენებს UART 8-ბიტიან მონაცემთა პაკეტს პარიტეტის ბიტის გარეშე.
სურათი 3. UART მონაცემთა პაკეტის სტრუქტურა
სურათი 4. UART 8-ბიტიანი მონაცემთა პაკეტის ფორმატი
UART მონაცემთა პაკეტის თითოეული ნაწილი წარმოდგენილია თანმიმდევრობით ქვემოთ.
- დაწყების ბიტი: ეს მიუთითებს მონაცემთა პაკეტის დაწყებაზე. UART TX პინი ჩვეულებრივ რჩება მაღალ ლოგიკურ დონეზე გადაცემის დაწყებამდე. თუ მონაცემთა გადაცემა დაიწყება, UART გადამცემი გაიყვანს TX პინს მაღალიდან დაბალზე, ანუ 1-დან 0-მდე და შემდეგ გააჩერებს მას ერთი საათის ციკლის განმავლობაში. UART მიმღები დაიწყებს მონაცემების კითხვას, როდესაც RX პინზე აღმოჩენილია მაღალიდან დაბალზე გადასვლა.
- მონაცემები: ეს არის ფაქტობრივი გადაცემული მონაცემები, მონაცემთა სიგრძით 7, 8 ან 9 ბიტი. როგორც წესი, მონაცემები პირველ რიგში გადადის LSB-ით.
- პარიტეტის ბიტი: ლოგიკის რიცხვი "1" მონაცემებში გამოიყენება იმის დასადგენად, შეიცვალა თუ არა რაიმე მონაცემი გადაცემის დროს. ლუწი პარიტეტისთვის, მონაცემებში ლოგიკის "1" ჯამური რაოდენობა უნდა იყოს ლუწი რიცხვი, პირიქით, ლოგიკის "1" ჯამური რაოდენობა მონაცემებში უნდა იყოს კენტი რიცხვი კენტი პარიტეტისთვის.
- Stop Bit: ეს მიუთითებს მონაცემთა პაკეტის დასასრულს, სადაც UART გადამცემი გაიყვანს TX პინს დაბალიდან მაღალზე, ანუ 0-დან 1-მდე და შემდეგ გააჩერებს მას 1 ან 2-ბიტიანი დროის განმავლობაში.
როგორც უკვე აღვნიშნეთ, ვინაიდან UART წრეში არ არის საათის სიგნალი, სერიული მონაცემების გადაცემის/მიღების იგივე სიჩქარე, რომელიც ცნობილია როგორც ბაუდის სიხშირე, უნდა განისაზღვროს გადამცემსა და მიმღებს შორის შეცდომების გარეშე გადაცემის განსახორციელებლად. ბაუდის სიჩქარე განისაზღვრება წამში გადაცემული ბიტების რაოდენობით, bps (ბიტი წამში). ზოგიერთი სტანდარტული და ხშირად გამოყენებული ბაუდის სიხშირეა 4800bps, 9600bps, 19200bps, 115200bps და ა.შ. მონაცემთა ერთი ბიტის გადაცემისთვის საჭირო შესაბამისი დრო ნაჩვენებია ქვემოთ.
ცხრილი 1. ბაუდის სიხშირე 1-ბიტიანი გადაცემის დროის წინააღმდეგ
ბაუდის რეიტინგი | 1-ბიტიანი გადაცემა დრო |
4800bps | 208.33 μs |
9600bps | 104.16 μs |
19200bps | 52.08 μs |
115200bps | 8.68 μs |
რესურსის ჩამოტვირთვა და მომზადება
ამ თავში გავაცნობთ აპლიკაციის კოდს და გამოყენებულ პროგრამულ ინსტრუმენტს, ასევე როგორ უნდა დააკონფიგურიროთ დირექტორია და file გზა.
Firmware ბიბლიოთეკა
პირველ რიგში, დარწმუნდით, რომ Holtek HT32 პროგრამული უზრუნველყოფის ბიბლიოთეკა ჩამოტვირთულია აპლიკაციის კოდის გამოყენებამდე. ჩამოტვირთვის ბმული ნაჩვენებია ქვემოთ. აქ არის ორი ვარიანტი, HT32_M0p_Vyyyymmdd.zip HT32F5xxxx სერიისთვის და HT32_M3_Vyyyymmdd.zip HT32F1xxxx სერიისთვის. ჩამოტვირთეთ და გახსენით სასურველი file.
zip file შეიცავს რამდენიმე საქაღალდეს, რომლებიც შეიძლება კლასიფიცირდეს როგორც Document, Firmware Library, Tools და სხვა ელემენტი, რომელთა განთავსების გზა ნაჩვენებია სურათზე 5. HT32 firmware ბიბლიოთეკის zip file ერთად ა file სახელი HT32_STD_xxxxx_FWLib_Vm.n.r_s.zip მდებარეობს Firmware_Library საქაღალდეში.
სურათი 5. HT32_M0p_Vyyyymmdd.zip შიგთავსი
განაცხადის კოდი
ჩამოტვირთეთ განაცხადის კოდი შემდეგი ბმულიდან. განაცხადის კოდი შეფუთულია zip-ში file ერთად ა file სახელი HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip. იხ სურათი 6 ამისთვის file სახელების კონვენციები.
სურათი 6. განაცხადის კოდი File სახელის შესავალი
ჩამოტვირთვის ლინკი: https://mcu.holtek.com.tw/ht32/app.fw/Module_UART/
File და დირექტორიის კონფიგურაცია
ვინაიდან განაცხადის კოდი არ შეიცავს HT32 firmware ბიბლიოთეკას files, აპლიკაციის კოდი და პროგრამული უზრუნველყოფის ბიბლიოთეკა გახსნილია files უნდა განთავსდეს სწორ გზაზე კომპილაციის დაწყებამდე. განაცხადის კოდი zip file ჩვეულებრივ შეიცავს ერთ ან მეტ საქაღალდეს, როგორიცაა აპლიკაცია და ბიბლიოთეკა, როგორც ნაჩვენებია 7-ში. მოათავსეთ აპლიკაციის საქაღალდე HT32 firmware ბიბლიოთეკის root დირექტორიაში, რათა დაასრულოთ file ბილიკის კონფიგურაცია, როგორც ნაჩვენებია სურათზე 8. ალტერნატიულად, გახსენით აპლიკაციის კოდი და HT32 პროგრამული უზრუნველყოფის ბიბლიოთეკა ერთდროულად იმავე გზაზე, რათა მიაღწიოთ კონფიგურაციის იგივე შედეგებს.
სურათი 7. HT32_APPFW_xxxxx_APPCODENAME_Vm.n.r_s.zip შიგთავსი
სურათი 8. დეკომპრესიის გზა
ტერმინალის პროგრამული უზრუნველყოფა
აპლიკაციის კოდს შეუძლია შეტყობინებების გადატანა COM პორტის მეშვეობით ფუნქციის შერჩევის ან სტატუსის ჩვენების განსახორციელებლად. ეს მოითხოვს მასპინძელ მხარეს წინასწარ დაინსტალირებული ტერმინალის პროგრამული უზრუნველყოფა. მომხმარებლებს შეუძლიათ აირჩიონ შესაბამისი კავშირის პროგრამული უზრუნველყოფა, ან გამოიყენონ უფასო ლიცენზირებული პროგრამული უზრუნველყოფა, როგორიცაა Tera Term. აპლიკაციის კოდში, UART არხი კონფიგურირებულია სიტყვის სიგრძით 8 ბიტით, პარიტეტის გარეშე, 1 გაჩერების ბიტით და ბაუდის სიჩქარით 115200 bps.
ფუნქციური აღწერა
ამ თავში მოცემულია აპლიკაციის კოდის ფუნქციური აღწერა, მათ შორის ინფორმაცია დირექტორიას სტრუქტურის, API არქიტექტურის, პარამეტრების აღწერილობის შესახებ და ა.შ.
დირექტორია სტრუქტურა
განაცხადის კოდი file შეიცავს აპლიკაციის საქაღალდეს. შემდეგი ფენა არის "Module_UART" საქაღალდე, რომელიც შეიცავს ორ აპლიკაციის პროგრამას, "UART_Module_Ex".ample“ და „UART_Bridge“. შესაბამისი files ჩამოთვლილია და აღწერილია ქვემოთ.
ცხრილი 2. განაცხადის კოდის დირექტორიის სტრუქტურა
საქაღალდე / File სახელი | აღწერა |
\\ აპლიკაცია\Module_UART\UART_Module_Example*1 | |
_CreateProject.bat | ჯგუფის სკრიპტები პროექტის შესაქმნელად files |
_ProjectSource.ini | ინიციალიზაცია file პროექტებში წყარო კოდის დასამატებლად |
ht32_board_config.h | დაყენება file დაკავშირებული IC პერიფერიულ I/O მინიჭებასთან |
ht32fxxxxx_01_it.c | შეფერხების სერვისის პროგრამა file |
მთავარი.გ | პროგრამის ძირითადი კოდი |
\\ აპლიკაცია\Module_UART\UART_Bridge*2 | |
_CreateProject.bat | ჯგუფის სკრიპტები პროექტის შესაქმნელად files |
_ProjectSource.ini | ინიციალიზაცია file პროექტებში წყარო კოდის დასამატებლად |
ht32_board_config.h | დაყენება file დაკავშირებული IC პერიფერიულ I/O მინიჭებასთან |
ht32fxxxxx_01_it.c | შეფერხების სერვისის პროგრამა file |
მთავარი.გ | ძირითადი პროგრამის წყარო კოდი |
uart_bridge.h uart_bridge.გ | UART ხიდის სათაური file და წყაროს კოდი file |
\\ utilities\middleware | |
uart_module.h*3 uart_module.c*3 | API სათაური file და წყაროს კოდი file |
\\ კომუნალური საშუალებები\ საერთო | |
ringbuffer.h ring_buffer.c | პროგრამული უზრუნველყოფის რგოლის ბუფერული სათაური file და წყაროს კოდი file |
შენიშვნა:
- „UART_Module_Example" აპლიკაციის კოდი, API წაკითხვის და ჩაწერის ოპერაციები შესრულებულია მარყუჟის რეჟიმში, იხილეთ "API Usage Ex.amples” განყოფილება დამატებითი დეტალებისთვის.
- "UART_Bridge" აპლიკაციის კოდში გააქტიურებულია ორი UART არხი, UART CH0 და UART CH1, და პერსონალური საკომუნიკაციო პროტოკოლი COMMAND სტრუქტურების მეშვეობით დანერგილია ორ UART მოწყობილობას შორის. დამატებითი ინფორმაციისთვის იხილეთ „API Usage Examples” განყოფილება.
- განაცხადის კოდი უნდა გამოიყენოს uart_module.c/h files, რომლებსაც აქვთ firmware ბიბლიოთეკის ვერსიის მოთხოვნა. მოთხოვნა შეიძლება დროდადრო შეიცვალოს განახლების მიხედვით. firmware ბიბლიოთეკის ვერსიის მიმდინარე მოთხოვნის დასადასტურებლად, მიმართეთ დამოკიდებულების შემოწმების კონტენტს main.c-ში საკვანძო სიტყვის „დამოკიდებულების შემოწმება“ მოძებნით. file. თუ firmware ბიბლიოთეკის ვერსია არ აკმაყოფილებს მოთხოვნებს, ჩამოტვირთეთ უახლესი ვერსია "Firmware Library" განყოფილებაში მოცემული ბმულიდან.
API არქიტექტურა
თითოეულ API-ს აქვს მნიშვნელოვანი პარამეტრი CH, რომელიც არის UART Channel. ეს განსაზღვრავს, თუ რომელი UART არხი უნდა იყოს კონტროლირებადი. ამჟამად ოთხამდე UART არხია მხარდაჭერილი და, შესაბამისად, ოთხი მუდმივი სიმბოლო განისაზღვრება შემდეგნაირად. ისინი გამოიყენება როგორც CH პარამეტრი, რომელიც უზრუნველყოფს API-ების საფუძველს კონტროლისთვის.
- UARTM_CH0: შეყვანის პარამეტრი – მართეთ ან დააკონფიგურირეთ UART CH0
- UARTM_CH1: შეყვანის პარამეტრი – მართეთ ან დააკონფიგურირეთ UART CH1
- UARTM_CH2: შეყვანის პარამეტრი – მართეთ ან დააკონფიგურირეთ UART CH2
- UARTM_CH3: შეყვანის პარამეტრი – მართეთ ან დააკონფიგურირეთ UART CH3
მეხსიერების სივრცე არ დაიხარჯება მხოლოდ ერთი UART არხის გამოყენების შემთხვევაში. ეს იმიტომ ხდება, რომ მხარდაჭერილი UART არხების რაოდენობა შეიძლება დაყენდეს და გამოუყენებელი UART არხის კოდი წაიშლება წინასწარი პროცესორის მიერ, რათა გაზარდოს ხელმისაწვდომი მეხსიერება. API არქიტექტურა ნაჩვენებია სურათი 9.
სურათი 9. API Architecture Block Diagram
თითოეული API შედგება UART არხთან დაკავშირებული პარამეტრების ან კონტროლის ოთხი ჯგუფისგან ისე, რომ მომხმარებლებს მხოლოდ სასურველი CH პარამეტრის შეყვანა სჭირდებათ. შესაბამისი API-ს კონფიგურაციისთვის საჭიროა მხოლოდ დამატებითი UART ძირითადი კონფიგურაციის პარამეტრების ცხრილი სტრუქტურის ფორმით, USART_InitTypeDef. API განახორციელებს UART-ის ძირითად კონფიგურაციას ცხრილში მოცემული პარამეტრის შინაარსის მიხედვით. იხილეთ "API აღწერა" განყოფილება UART ძირითადი კონფიგურაციის სტრუქტურის ცხრილისთვის.
uart_module.c/.h files შეიცავს მხოლოდ თითოეული UART არხის შეფერხებას (CHx_IRQ) და სტატუსის ცხრილს (CHx სტატუსი), ხოლო UART კომუნიკაციისთვის საჭირო ყველა პარამეტრი მოწოდებულია ht32_board_config.h-ით. ტექნიკის შესაბამისი პარამეტრები ht32_board_config.h-ში file ნაჩვენებია ქვემოთ მოცემულ ცხრილში. დამატებითი დეტალები მოცემულია "პარამეტრების აღწერა" განყოფილებაში.
ht32_board_config.h ტექნიკის შესაბამისი პარამეტრები მოიცავს I/O პარამეტრებს და ფიზიკურ UART პორტის პარამეტრებს, შემდეგნაირად.
ცხრილი 3. განმარტების სიმბოლოები ht32_board_config.h
სიმბოლო | აღწერა |
HTCFG_UARTM_CH0 | ფიზიკური UART პორტის სახელი; მაგample: UART0, UART1… |
HTCFG_UARTM0_TX_GPIO_PORT | განსაზღვრავს TX პორტის სახელს CH0-სთვის; მაგample: A, B, C… |
HTCFG_UARTM0_TX_GPIO_PIN | განსაზღვრავს TX-ის პინის რაოდენობას CH0-სთვის; მაგampლარი: 0-15 |
HTCFG_UARTM0_RX_GPIO_PORT | განსაზღვრავს RX-ის პორტის სახელს CH0-სთვის; მაგample: A, B, C… |
HTCFG_UARTM0_RX_GPIO_PIN | განსაზღვრავს TX-ის პინის რაოდენობას CH0-სთვის; მაგampლარი: 0-15 |
HTCFG_UARTM0_TX_BUFFER_SIZE | განსაზღვრავს TX ბუფერის ზომას CH0-სთვის; მაგampლე: 128 |
HTCFG_UARTM0_RX_BUFFER_SIZE | განსაზღვრავს RX ბუფერის ზომას CH0-სთვის; მაგampლე: 128 |
UART არხის AFIO კონფიგურაციის შესაცვლელად, მიმართეთ მოწყობილობის შესაბამის მონაცემთა ცხრილს. ამჟამად მხოლოდ UART CH0-ის I/O განმარტებები მოქმედებს, რადგან მხოლოდ UART CH0 არის კონფიგურირებული ht32_board_config.h-ში. UART CH1~3-ის დასამატებლად, მათი I/O განმარტებები უნდა დასრულდეს UART CH0 განმარტების მითითებით ან „პარამეტრების მოდიფიკაციისა და ხშირად დასმული კითხვების“ განყოფილების მითითებით.
არსებობს სამი API არქიტექტურის ძირითადი მახასიათებელი:
- ოთხამდე UART არხი მხარდაჭერილია. მათი შეყვანის პარამეტრებია UARTM_CH0, UARTM_CH1, UARTM_CH2 და UARTM_CH3.
- UART არხების რაოდენობა შეიძლება დაყენდეს და გამოუყენებელი არხები არ შეამცირებს მეხსიერების ხელმისაწვდომ ადგილს.
- ყველა UART პარამეტრი და I/O განსაზღვრება მთლიანად გამოყოფილია API-ებისგან. ეს ზრდის მნიშვნელობების დაყენების მართვის მოხერხებულობას და ამცირებს არასწორი ან დაკარგული პარამეტრების შესაძლებლობას.
პარამეტრის აღწერა
ამ განყოფილებაში შემოგთავაზებთ პარამეტრის პარამეტრებს ht32_board_config.h და uart_module.h files.
- ht32_board_config.h: ეს file გამოიყენება პინის განსაზღვრებისა და განვითარების დაფის შესაბამისი პარამეტრებისთვის, რომელიც მოიცავს UART IP არხს (UART0, UART1, USART0…), რომელსაც იყენებს Starter Kit (SK), შესაბამისი TX/RX პინების მდებარეობები და TX/RX ბუფერის ზომა. სურათი 10 გვიჩვენებს HT32F52352 დამწყებ ნაკრების პარამეტრების შიგთავსს. დეველოპმენტის ფუნქციონალური ინტეგრაციის მიხედვით, მომხმარებლებს შეუძლიათ მიმართონ გამოყენებული მოწყობილობის მონაცემთა ფურცლის „Pin Assignment“ განყოფილებას პინის განმარტებების განსახორციელებლად. დამატებითი დეტალები პარამეტრების მოდიფიკაციის შესახებ აღწერილი იქნება განყოფილებაში „პარამეტრების მოდიფიკაცია და ხშირად დასმული კითხვები“.
სურათი 10. ht32_board_config.h პარამეტრები (HT32F52352)
- uart_module.h: ეს არის API სათაური file გამოიყენება აპლიკაციის კოდით, რომელიც მოიცავს შესაბამის ნაგულისხმევ პარამეტრებს, ფუნქციების განსაზღვრებებს და ა.შ. როგორც ნაჩვენებია 11-ზე, ნაგულისხმევი პარამეტრების შინაარსი შეიძლება გადაიწეროს გარე კონფიგურაციებით, როგორიცაა პარამეტრები ht32_board_config.h. file.
სურათი 11. ნაგულისხმევი პარამეტრები uart_module.h
API აღწერა
- აპლიკაციის კოდის მონაცემთა ტიპის აღწერა.
- USART_InitTypeDef
ეს არის UART ძირითადი კონფიგურაციის სტრუქტურა, რომელიც შედგება BaudRate, WordLength, StopBits, Parity და Mode კონფიგურაციებისგან, როგორც ნაჩვენებია ქვემოთ.ცვლადი სახელი ტიპი აღწერა USART_BaudRate u32 UART კომუნიკაციის ბაუდ სიხშირე USART_სიტყვის სიგრძე u16 UART საკომუნიკაციო სიტყვის სიგრძე: 7, 8 ან 9 ბიტი USART_StopBits u16 UART კომუნიკაციის გაჩერების ბიტის სიგრძე: 1 ან 2 ბიტი USART_პარიტეტი u16 UART კომუნიკაციის პარიტეტი: ლუწი, კენტი, ნიშანი, სივრცე ან პარიტეტის გარეშე USART_რეჟიმი u16 UART კომუნიკაციის რეჟიმი; API-ები მხარს უჭერენ მხოლოდ ნორმალურ რეჟიმს
- USART_InitTypeDef
- API ფუნქციების გამოყენებამდე დაასრულეთ UART ძირითადი კონფიგურაცია მთავარ პროგრამაში. UART ძირითადი კონფიგურაცია ამ აპლიკაციის კოდისთვის ნაჩვენებია სურათზე 12. აქ ბაუდის სიჩქარეა 115200 bps, სიტყვის სიგრძე არის 8 ბიტი, გაჩერების ბიტის სიგრძე არის 1 ბიტი და არ არის პარიტეტი.
სურათი 12. UART ძირითადი კონფიგურაცია
- სურათი 13 გვიჩვენებს uart_module.h-ში გამოცხადებულ API ფუნქციებს file. შემდეგი ცხრილები ხსნის API ფუნქციების ფუნქციას, შეყვანის პარამეტრებს და გამოყენებას.
სურათი 13. API ფუნქციის დეკლარაციები uart_module.h
სახელი | void UARTM_Init(u32 CH, USART_InitTypeDef *pUART_Init, u32 uRxTimeOutValue) | |
ფუნქცია | UART მოდულის ინიციალიზაცია | |
შეყვანა | CH | UART არხი |
pUART_Init | UART ძირითადი კონფიგურაციის სტრუქტურის მაჩვენებელი | |
uRxTimeOutValue | UART RX FIFO დროის ამოწურვის მნიშვნელობა. როდესაც RX FIFO მიიღებს ახალ მონაცემებს, მრიცხველი აღდგება და გადაიტვირთება. მას შემდეგ, რაც მრიცხველი მიაღწევს წინასწარ განსაზღვრულ დროის ამოწურვის მნიშვნელობას და შესაბამისი დროის ამოწურვის შეფერხება ჩართული იქნება, წარმოიქმნება დროის ამოწურვის შეფერხება. | |
გამოყენება | UARTM_Init(UARTM_CH0, &USART_InitStructure, 40);//UART-ის ძირითადი კონფიგურაციის შესრულება//იხილეთ სურათი 12 USART_InitStructure-ის კონფიგურაციისთვის |
სახელი | u32 UARTM_WriteByte (u32 CH, u8 uData) | |
ფუნქცია | UART მოდულის ჩაწერის ბაიტის ოპერაცია (TX) | |
შეყვანა | CH | UART არხი |
uData | ჩასაწერი მონაცემები | |
გამომავალი | წარმატება | წარმატებული |
შეცდომა | ვერ მოხერხდა | |
გამოყენება | UARTM_WriteByte(UARTM_CH0, 'A'); //UART წერს 1 ბაიტს – 'A' |
სახელი | u32 UARTM_Write (u32 CH, u8 *pBuffer, u32 uსიგრძე) | |
ფუნქცია | UART მოდულის ჩაწერის ოპერაცია (TX) | |
შეყვანა | CH | UART არხი |
pBuffer | ბუფერული მაჩვენებელი | |
u სიგრძე | ჩასაწერი მონაცემების სიგრძე | |
გამომავალი | წარმატება | წარმატებული |
შეცდომა | ვერ მოხერხდა | |
გამოყენება | u8 ტესტი[] = „ეს არის ტესტი!\r\n“; UARTM_Write(UARTM_CH0, ტესტი, ზომა(ტესტი) -1); //UART წერს pBuffer მონაცემებს |
სახელი | u32 UARTM_ReadByte (u32 CH, u8 *pData) | |
ფუნქცია | UART მოდულის წაკითხვის ბაიტის ოპერაცია (RX) | |
შეყვანა | CH | UART არხი |
pData | წაკითხული მონაცემების განთავსების მისამართი | |
გამომავალი | წარმატება | წარმატებული |
შეცდომა | ვერ მოხერხდა (მონაცემების გარეშე) | |
გამოყენება | u8 TempData; if (UARTM_ReadByte(UARTM_CH0, &TempData) == SUCCESS){UARTM_WriteByte(UARTM_CH0, TempData);}//თუ UARTM_ReadByte() დააბრუნებს SUCCESS, მაშინ UART წერს ამ მონაცემთა ბაიტს |
სახელი | u32 UARTM_Read(u32 CH, u8 *pBuffer, u32 uLength) | |
ფუნქცია | UART მოდულის წაკითხვის ოპერაცია (RX) | |
შეყვანა | CH | UART არხი |
pBuffer | ბუფერული მაჩვენებელი | |
u სიგრძე | წასაკითხი მონაცემების სიგრძე | |
გამომავალი | წაკითხვის რაოდენობა | მონაცემების სიგრძე წაკითხულია |
გამოყენება | u8 ტესტი2[10]; u32 Len; Len = UARTM_Read(UARTM_CH0, Test2, 5);if (Len > 0){UARTM_Write(UARTM_CH0, Test2, Len);}//UARTM_Read() კითხულობს 5 ბაიტ მონაცემს და ინახავს მონაცემებს Test2-ში და ანიჭებს წაკითხული ბაიტების რაოდენობას ლენს//დაწერეთ ტესტი2-დან მიღებული მონაცემები |
სახელი | u32 UARTM_GetReadBufferLength(u32 CH) | |
ფუნქცია | მიიღეთ წაკითხული ბუფერის სიგრძე (RX) | |
შეყვანა | CH | UART არხი |
გამომავალი | u სიგრძე | წაიკითხეთ ბუფერის სიგრძე |
გამოყენება | UARTM_Init(UARTM_CH0, &USART_InitStructure, 40); //UART მოდულის ინიციალიზაცია ხოლო (UARTM_GetReadBufferLength(UARTM_CH0) < 5);//დაელოდეთ სანამ UARTM_ReadBuffer მიიღებს 5 ბაიტ მონაცემს |
სახელი | u32 UARTM_GetWriteBufferLength(u32 CH) | |
ფუნქცია | მიიღეთ ჩაწერის ბუფერის სიგრძე (TX) | |
შეყვანა | CH | UART არხი |
გამომავალი | u სიგრძე | ჩაწერეთ ბუფერის სიგრძე |
სახელი | u8 UARTM_IsTxFinished(u32 CH) | |
ფუნქცია | მიიღეთ TX სტატუსი | |
შეყვანა | CH | UART არხი |
გამომავალი | მართალი | TX სტატუსი: დასრულებული |
ცრუ | TX სტატუსი: არ დასრულებულა | |
გამოყენება | UARTM_WriteByte(UARTM_CH0, 'O'); #if 1 // “uart_module.c” SVN >= 525 საჭიროა, ხოლო (UARTM_IsTxFinished(UARTM_CH0) == FALSE) #სხვას (1) #endif //ეს API შეიძლება გამოყენებულ იქნას TX სტატუსის შესამოწმებლად, როგორც ეს ნაჩვენებია ზემოთ; დაელოდეთ UARTM_WriteByte() API-ის დასრულებას, ანუ TX სტატუსი არის TRUE და შემდეგ გააგრძელეთ შემდგომი მოქმედებები.//დაემატება შეზღუდვა, რადგან ეს ფუნქცია არ დაემატა მანამ, სანამ SVN ვერსიის ნომერი uart_module.c-ში არ იქნება 525. |
სახელი | ბათილად UARTM_DiscardReadBuffer(u32 CH) | |
ფუნქცია | წაშალეთ მონაცემები წაკითხვის ბუფერში | |
შეყვანა | CH | UART არხი |
API გამოყენება მაგamples
ამ განყოფილებაში ნაჩვენები იქნება API ჩაწერა და წაკითხვა ყოფილიamp"Module_UART" აპლიკაციის კოდი ინიციალიზაციის პროცესის გამოყენებით და "UART_Module_Ex"ample” განაცხადის კოდის პროცესი. API-ების გამოყენებამდე მომხმარებლებმა უნდა შეიტანონ API სათაური file პროგრამის ძირითად კოდში file (#include "middleware/uart_module.h").
როგორც ნახაზი 14-ზეა ნაჩვენები, ინიციალიზაციის პროცესში შესვლისას, ჯერ განსაზღვრეთ UART ძირითადი კონფიგურაციის სტრუქტურა. შემდეგ დააკონფიგურირეთ UART ძირითადი კონფიგურაციის სტრუქტურის წევრები, მათ შორის BaudRate, WordLength, StopBits, Parity და Mode. და ბოლოს, გამოიძახოთ API ინიციალიზაციის ფუნქცია, რომლის დასრულება მიუთითებს ინიციალიზაციის პროცესის დასრულებაზე. ამის შემდეგ მომხმარებლებს შეუძლიათ გააგრძელონ ჩაწერისა და წაკითხვის ოპერაციები წინასწარ დაყენებული UART ძირითადი კონფიგურაციის საფუძველზე.
სურათი 14. ინიციალიზაციის დიაგრამა
„UART_Module_Example” აპლიკაციის კოდი აჩვენებს API წაკითხვის და ჩაწერის ოპერაციებს მარყუჟის რეჟიმში. ამის დიაგრამა ნაჩვენებია სურათზე 15. გამოყენებული API ფუნქციები მოიცავს UARTM_WriteByte(), UARTM_Write(), UARTM_ReadByte(), UARTM_Read() და UARTM_GetReadBufferLength(). მათი აღწერა მოცემულია "API აღწერა" განყოფილებაში.
ნახაზი 15. ჩაწერისა და წაკითხვის გრაფიკი მაგamples
არის კიდევ ერთი „UART_Bridge“ აპლიკაციის კოდი „Module_UART“ საქაღალდეში, რომელიც დაკავშირებულია file აღწერა მოცემულია "დირექტორის სტრუქტურა" განყოფილებაში. „UART_Bridge“ აპლიკაციის კოდი ააქტიურებს ორ UART არხს, UART CH0 და UART CH1 და შემდეგ არეგულირებს საკომუნიკაციო პროტოკოლს ორ UART მოწყობილობას შორის COMMAND სტრუქტურების, gCMD1 და gCMD2 მეშვეობით. ისინი განსაზღვრულია uart_bridge.c-ში, როგორც ნაჩვენებია ქვემოთ. UARTBridge_CMD1TypeDef gCMD1:
ცვლადი სახელი | ტიპი | აღწერა |
uHeader | u8 | სათაური |
uCmd | u8 | ბრძანება |
uData[3] | u8 | მონაცემები |
UARTBridge_CMD2TypeDef gCMD2:
ცვლადი სახელი | ტიპი | აღწერა |
uHeader | u8 | სათაური |
uCmdA | u8 | ბრძანება ა |
uCmdB | u8 | ბრძანება B |
uData[3] | u8 | მონაცემები |
"UART_Bridge" აპლიკაციის კოდში გამოიყენეთ gCMD1 მონაცემების მისაღებად, როგორც ბრძანების პაკეტი და შემდეგ გააანალიზეთ ისინი. შემდეგ მორგებული საკომუნიკაციო პროტოკოლის მიხედვით, დააყენეთ gCMD2, როგორც საპასუხო პაკეტი და გადაიტანეთ იგი. შემდეგი არის ყოფილიampgCMD1 ბრძანების პაკეტის le) და საპასუხო პაკეტის (gCMD2). ბრძანების პაკეტი (UARTBridge_CMD1TypeDef gCMD1):
ბაიტი 0 | ბაიტი 1 | ბაიტი 2 ~ ბაიტი 4 |
uHeader | uCmd | uData [3] |
"A" | "1" | "x, y, z" |
საპასუხო პაკეტი (UARTBridge_CMD2TypeDef gCMD2):
ბაიტი 0 | ბაიტი 1 | ბაიტი 2 | ბაიტი 3 ~ ბაიტი 5 |
uHeader | uCmdA | uCmdB | uData [3] |
"B" | "ა" | "1" | "x, y, z" |
რესურსის ოკუპაცია
აღებულია HT32F52352 როგორც ყოფილიampასევე, UART მოდულის მიერ დაკავებული რესურსები ნაჩვენებია ქვემოთ.
HT32F52352 | |
ROM ზომა | 946 ბაიტი |
RAM ზომა | 40*1 + 256*2 ბაიტები |
შენიშვნა:
- გლობალური ცვლადები, მათ შორის დროშები და სტატუსი ერთი არხისთვის, იკავებს 40 ბაიტს RAM-ს.
- ეს არის იმ მდგომარეობისთვის, როდესაც გამოიყენება ერთი არხი და TX/RX ბუფერის ზომაა 128/128 ბაიტი. ბუფერის ზომა შეიძლება დაყენდეს განაცხადის მოთხოვნების შესაბამისად.
ცხრილი 4. აპლიკაციის კოდი რესურსის ოკუპაცია
- კომპილაციის გარემო: MDK-Arm V5.36, ARMCC V5.06 განახლება 7 (build 960)
- ოპტიმიზაციის ვარიანტი: დონე 2 (-O2)
გამოყენების ინსტრუქცია
ეს თავი გააცნობს გარემოსდაცვით მომზადებას "Module_UART" განაცხადის კოდისთვის, ასევე შედგენისა და ტესტირების ეტაპებს.
გარემოსდაცვითი მომზადება
"Module_UART" აპლიკაციის კოდისთვის საჭირო აპარატურა და პროგრამული უზრუნველყოფა მოცემულია ქვემოთ.
ცხრილი 5. აპარატურა/პროგრამული უზრუნველყოფის გარემოს მომზადება
აპარატურა/პროგრამული უზრუნველყოფა | დათვალეთ | შენიშვნა |
დამწყებ ნაკრები | 1 | აპლიკაციის ეს ჩანაწერი იყენებს HT32F52352 დამწყებ კომპლექტს, როგორც მაგალითსample |
USB კაბელი | 1 | მიკრო USB, დაკავშირებული კომპიუტერთან |
განაცხადის კოდი | — | ჩამოტვირთვის გზა, file და დირექტორიას კონფიგურაცია წარმოდგენილია "რესურსების ჩამოტვირთვა და მომზადება" განყოფილებაში. ბილიკი: "\\application\Module_UART\UART_Module_Exampლე " |
ტერა ტერმინი | — | იხილეთ "ტერმინალის პროგრამული უზრუნველყოფის" განყოფილება |
Keil IDE | — | Keil uVision V5.xx |
უპირველეს ყოვლისა, გამოიყენეთ HT32F52352 Starter Kit კომბინირებული e-Link32 Lite-ის ვირტუალური COM პორტის (VCP) ფუნქციასთან UART აპლიკაციის შესატანად. ეს მოითხოვს შემდეგი გარემოსდაცვითი მომზადების განხორციელებას:
- დაფაზე არის ორი USB ინტერფეისი. გამოიყენეთ USB კაბელი კომპიუტერის და eLink32 Lite ინტერფეისის დასაკავშირებლად დაფაზე, როგორც ნაჩვენებია სურათზე 16-(a).
- ვინაიდან აპლიკაციის კოდს სჭირდება e-Link32 Lite ვირტუალური COM პორტის (VCP) ფუნქციის გამოყენება, დარწმუნდით, რომ UART Jumper-J2*2-ის PAx*1 და DAP_Tx შეკუმშულია ჯუმპერის გამოყენებით. J2 მდებარეობა მითითებულია სურათზე 16-(ბ).
შენიშვნა
- J2-ს Starter Kit-ზე აქვს ორი ვარიანტი, PAx და DAP_Tx მოკლედ ან PAx და RS232_Tx მოკლედ. დეტალური პარამეტრების ფუნქციებისთვის იხილეთ Starter Kit-ის მომხმარებლის სახელმძღვანელო.
- MCU UART RX პინის მდებარეობა სხვადასხვა დამწყებ კომპლექტებზე განსხვავებულია. ეს ყოფილიample იყენებს PAx-ს RX პინის აღსანიშნავად.
სურათი 16. HT32 Starter Kit Block Diagram
ახლა გამოიყენეთ მომხმარებლის სამიზნე დაფა e-Link32 Pro-ის ვირტუალური COM პორტის (VCP) ფუნქციასთან ერთად UART აპლიკაციის შესატანად. ეს მოითხოვს შემდეგი გარემოსდაცვითი მომზადების განხორციელებას:
- e-Link32 Pro-ის ერთი მხარე დაკავშირებულია კომპიუტერთან Mini USB კაბელის გამოყენებით, ხოლო მეორე მხარე დაკავშირებულია მომხმარებლის სამიზნე დაფასთან მისი 10-ბიტიანი ნაცრისფერი კაბელის საშუალებით. კავშირი კაბელისა და სამიზნე დაფის SWD ინტერფეისებს შორის განხორციელებულია Dupont ხაზების გამოყენებით, როგორც ნაჩვენებია სურათზე 17-(a).
- e-Link32 Pro-ის სერიული საკომუნიკაციო პინებია Pin#7 VCOM_RXD და Pin#8- VCOM_TXD. ისინი უნდა იყოს დაკავშირებული მომხმარებლის სამიზნე დაფის TX და RX ქინძისთავებთან, როგორც ნაჩვენებია სურათზე 17-(ბ).
სურათი 17. e-Link32 Pro + მომხმარებლის სამიზნე დაფის ბლოკის დიაგრამა
შედგენა და ტესტირება
ეს სექცია მიიღებს „აპლიკაციას\Module_UART\UART_Module_Exampლე“ როგორც ყოფილიampშეადგინოს შედგენისა და ტესტირების პროცესები. მანამდე დარწმუნდით, რომ წინა ნაწილში აღწერილი ყველა მომზადება დანერგილია და ტერა ტერმინის ტერმინალის პროგრამული უზრუნველყოფა ჩამოტვირთულია.
ოპერაციის დეტალური ნაბიჯები შეჯამებულია ქვემოთ.
ნაბიჯი 1. ჩართვის ტესტი
დააყენეთ აპარატურის გარემო, როგორც ეს აღწერილია წინა ნაწილში. ჩართვის შემდეგ, დამწყებ ნაკრების ქვედა მარცხენა მხარეს D9 დენის LED განათდება. D1 USB LED e-Link32 Lite-ზე ზედა მარჯვენა მხარეს განათდება USB აღრიცხვის დასრულების შემდეგ. თუ D1 არ არის განათებული დიდი ხნის შემდეგ, დაადასტურეთ შეუძლია თუ არა USB კაბელს კომუნიკაცია. თუ არა, მაშინ ამოიღეთ და ხელახლა ჩადეთ.
ნაბიჯი 2. შექმენით პროექტი
გახსენით აპლიკაცია\Module_UART\UART_Module_Exampსაქაღალდე, დააწკაპუნეთ _CreateProject.bat file პროექტის გენერირებისთვის, როგორც ნაჩვენებია სურათზე 18. ვინაიდან ამ აპლიკაციის შენიშვნა იყენებს HT32F52352 Starter Kit-ს, გახსენით Keil IDE პროექტი „Project_52352.uvprojx“, რომელიც მდებარეობს MDK_ARMv5 საქაღალდეში.
ნახაზი 18. შეასრულეთ _CreateProject.bat პროექტის გენერირებისთვის
ნაბიჯი 3. შედგენა და დაპროგრამება
პროექტის გახსნის შემდეგ, ჯერ დააწკაპუნეთ „Build“-ზე (ან გამოიყენეთ მალსახმობი „F7“), შემდეგ დააჭირეთ „ჩამოტვირთვას“ (ან გამოიყენეთ მალსახმობი „F8“). ამის შემდეგ, Build და ჩამოტვირთვის შედეგები გამოჩნდება Build Output ფანჯარაში. იხილეთ სურათი 19.
სურათი 19. შედეგების აგება და ჩამოტვირთვა
ნაბიჯი 4. გახსენით Tera Term პროგრამული უზრუნველყოფა და დააკონფიგურირეთ სერიული პორტი
გახსენით Tera Term პროგრამული უზრუნველყოფა და COM პორტი. მიაქციეთ ყურადღება, არის თუ არა სტარტერ ნაკრების მიერ გენერირებული COM პორტის ნომერი სწორი. შემდეგ დააწკაპუნეთ "Setup >> Serial Port" კონფიგურაციის ინტერფეისში შესასვლელად. "Module_UART" აპლიკაციის კოდის UART ინტერფეისის კონფიგურაცია აღწერილია "ტერმინალის პროგრამული უზრუნველყოფის" განყოფილებაში. დაყენების შედეგი ნაჩვენებია სურათზე 20.
სურათი 20. Tera Term სერიული პორტის დაყენების შედეგი
ნაბიჯი 5. გადატვირთეთ სისტემა და შეამოწმეთ
დააჭირეთ SK გადატვირთვის ღილაკს - B1 Reset. ამის შემდეგ, "ABCThis არის ტესტი!" შეტყობინება იქნება
გადაიცემა API-ს მეშვეობით და გამოჩნდება Tera Term ფანჯარაში, როგორც ნაჩვენებია 21-ზე. მიღების ფუნქციასთან დაკავშირებით, მონაცემების შეყვანისას Tera Term ფანჯარაში, შესაბამისი API გამოყენებული იქნება მიღების ბუფერის სიგრძის დასადგენად. როდესაც კომპიუტერის მიერ მიღებული მონაცემები მიაღწევს 5 ბაიტს, მიღებული 5 ბაიტი მონაცემები გაიგზავნება თანმიმდევრობით. როგორც 22-ე სურათზეა ნაჩვენები, თანმიმდევრულად შეყვანილი მონაცემები არის „1, 2, 3, 4, 5“, რომელიც მიიღება და განისაზღვრება API-ს მეშვეობით. ამის შემდეგ, მონაცემები "1, 2, 3, 4, 5" დაიბეჭდება ხუთი შეყვანის შემდეგ.
ნახაზი 21. „Module_UART“ აპლიკაციის კოდის ფუნქციური ტესტი – გადაცემა
სურათი 22. „Module_UART“ აპლიკაციის კოდის ფუნქციური ტესტი – მიღება
გადანერგვის ინსტრუქციები
ამ განყოფილებაში გაგაცნობთ API-ების ინტეგრირებას მომხმარებლის პროექტებში.
ნაბიჯი 1. დაამატეთ uart_module.c file პროექტში. დააწკაპუნეთ მომხმარებლის საქაღალდეზე მარჯვენა ღილაკით. აირჩიეთ "დაამატე არსებული Files ჯგუფში „მომხმარებელი“…“, შემდეგ აირჩიეთ uart_module.c file და დააწკაპუნეთ „დამატებაზე“, როგორც ნაჩვენებია სურათზე 23. იხილეთ „დირექტორიის სტრუქტურა“ განყოფილებაში file ბილიკის აღწერა.
სურათი 23. დაამატეთ uart_module.c File პროექტამდე
ნაბიჯი 2. დაამატეთ ring_buffer.c file პროექტში. დააწკაპუნეთ მომხმარებლის საქაღალდეზე მარჯვენა ღილაკით. აირჩიეთ "დაამატე არსებული Files ჯგუფში „მომხმარებელი“…“, შემდეგ აირჩიეთ ring_buffer.c file და დააწკაპუნეთ „დამატებაზე“, როგორც ნაჩვენებია სურათზე 24.\ იხილეთ „დირექტორის სტრუქტურა“ განყოფილებაში file ბილიკის აღწერა.
სურათი 24. დაამატეთ ring_buffer.c File პროექტამდე
ნაბიჯი 3. ჩართეთ API სათაური file main.c-ის დასაწყისში, როგორც ნაჩვენებია სურათზე 25. (Ext: #include “middleware/uart_module.h”)
სურათი 25. ჩართეთ API Header File მთავარამდე.გ
ნაბიჯი 4. განახორციელეთ UART კომუნიკაციისთვის საჭირო პარამეტრები ht32_board_config.h-ის გამოყენებით file. ეს დეტალურად არის წარმოდგენილი "პარამეტრების აღწერა" და "პარამეტრების მოდიფიკაცია და ხშირად დასმული კითხვები" სექციებში.
მოდიფიკაციის და ხშირად დასმული კითხვების დაყენება
ამ განყოფილებაში გაგაცნობთ, თუ როგორ უნდა შეცვალოთ UART პარამეტრები და აგიხსნათ რამდენიმე გავრცელებული კითხვა, რომელიც წარმოიქმნება გამოყენების დროს.
UART პინის მინიჭების შეცვლა
- HT32F52352 მონაცემთა ფურცლის „Pin Assignment“ თავში მითითებით, მოძებნეთ ალტერნატიული ფუნქციების რუკების ცხრილი, სადაც ჩამოთვლილია მოწყობილობის ტიპის AFIO ფუნქციები. UART შესაბამისი ქინძისთავებისთვის იხილეთ „AF6 USART/UART“ სვეტი, როგორც ნაჩვენებია სურათზე 26.
სურათი 26. HT32F52352 ალტერნატიული ფუნქციის რუკების ცხრილი
- ეს ნაბიჯი ხელმძღვანელობს მომხმარებლებს, რათა მოძებნონ შესაბამისი UART ქინძისთავები ზემოთ მოცემული ცხრილის გამოყენებით. HT32F52352 ყოფილიample იყენებს USART1 როგორც ნაგულისხმევ არხს. აქ, TX და RX პინები არის USR1_TX და USR1_RX და განლაგებულია შესაბამისად PA4 და PA5. სურათი 27 გვიჩვენებს პინის შესაბამისობას, ისევე როგორც პინის განმარტებებს „ht32_board_config.h“-ში. „პაკეტის“ ცარიელი ველები პინის მინიჭების ცხრილში ნიშნავს, რომ ამ პაკეტში არ არის შესაბამისი GPIO. UART ქინძისთავების შესაცვლელად, იპოვეთ სამიზნე პინების მდებარეობები და ხელახლა განსაზღვრეთ ქინძისთავები „ht32_board_config.h“-ის გამოყენებით. file.
სურათი 27. პინის კორესპონდენცია და პარამეტრის მოდიფიკაცია
დაამატეთ UART არხი
აღებულია HT32F52352 HTCFG_UARTM_CH1, როგორც ყოფილიample, აქ აღწერილია, თუ როგორ უნდა დაამატოთ ახალი UART არხი.
შეცვალეთ ht32_board_config.h file
HT32F52352 მონაცემთა ფურცლის „Pin Assignment“ თავში მითითებით, მოძებნეთ ალტერნატიული ფუნქციების რუკების ცხრილი, სადაც ჩამოთვლილია მოწყობილობის ტიპის AFIO ფუნქციები. ვინაიდან USART1 გამოიყენებოდა როგორც HTCFG_UARTM_CH0, ახლად დამატებულ HTCFG_UARTM_CH1-ს შეუძლია აირჩიოს USART0. აქ, TX და RX ქინძისთავები განლაგებულია შესაბამისად PA2 და PA3-ზე, როგორც ნაჩვენებია ნახაზი 28-ის ზედა ნახევარში. შესაბამისი ცვლილებები განხორციელებულია კოდის ხაზების გამოყენებით 120~126 ht32_board_config.h-ში, როგორც ნაჩვენებია ნახატზე წითელი წერტილოვანი ველით. 28.
სურათი 28. დაამატეთ UART არხი
ხშირად დასმული კითხვები
Q: შედგენისა და ტესტის განყოფილების მე-5 საფეხურზე გადაცემის ფუნქციური ტესტი ნორმალურია. აი, "ABCThis არის ტესტი!" შეტყობინება წარმატებით იქნა ნაჩვენები, თუმცა მიღების ფუნქციისთვის რატომ არ არის დაბრუნებული და ნაჩვენები ხუთი შეყვანის მნიშვნელობა?
A: შეამოწმეთ არის თუ არა UART Jumper-J2-ის MCU UART RX და DAP_Tx ქინძისთავები ჯუმპერის გამოყენებით. ვინაიდან „Module_UART“ აპლიკაციის კოდს სჭირდება e-Link32 Lite-ის ვირტუალური COM პორტის (VCP) გამოყენება, მოკლე ჩართვის პარამეტრი უნდა იყოს გამოყენებული UART Jumper-J2-ის მარცხენა ორ პინზე, როგორც ნაჩვენებია 29-ზე.
სურათი 29. UART Jumper-J2 პარამეტრი
კითხვა: შემდეგ "Build"-ის (ან მალსახმობის "F7") შესრულებისას, ჩნდება შეცდომის შეტყობინება, რომელიც მიუთითებს იმაზე, რომ firmware ბიბლიოთეკის ვერსია უფრო ძველია ვიდრე ის, რაც საჭიროა? იხილეთ სურათი 30.
A: "Module_UART" აპლიკაციის კოდის განხორციელება უნდა შეიცავდეს uart_module.c/h files რომელსაც აქვს მოთხოვნა firmware ბიბლიოთეკის გარკვეული ვერსიისთვის. როდესაც ასეთი შეცდომის შეტყობინება გამოჩნდება, ეს ნიშნავს, რომ ამჟამად გამოყენებული firmware ბიბლიოთეკა უფრო ძველი ვერსიაა. ამიტომ აუცილებელია უახლესი ვერსიის ჩამოტვირთვა "Firmware Library" განყოფილებაში მოცემული ბმულით.
სურათი 30. პროგრამული უზრუნველყოფის ბიბლიოთეკის ვერსიის შეცდომის შეტყობინება
დასკვნა
ეს დოკუმენტი წარმოადგენს ძირითად შესავალს, რათა დაეხმაროს მომხმარებლებს „Module_UART“ აპლიკაციის კოდისა და UART საკომუნიკაციო პროტოკოლის უკეთ გაგებაში. ამას მოჰყვა რესურსის ჩამოტვირთვა და მომზადება. ფუნქციური აღწერილობის თავში წარმოდგენილია file დირექტორია სტრუქტურა, API არქიტექტურა, API აღწერა და API გამოყენება მაგamples. გამოყენების ინსტრუქციის თავში ნაჩვენებია "Module_UART" აპლიკაციის კოდის გარემოსდაცვითი მომზადება, შედგენა და ტესტირება. იგი ასევე აწვდიდა ინსტრუქციებს კოდის გადანერგვისა და მოდიფიკაციის პარამეტრებისთვის, ასევე ახსნიდა ზოგიერთ საერთო პრობლემას, რომელიც შეიძლება შეგხვდეთ. ეს ყველაფერი კომბინირებული საშუალებას მისცემს მომხმარებლებს სწრაფად გაიგონ, თუ როგორ გამოიყენონ API-ები და შემდგომ შეამცირონ დაწყების დრო.
საცნობარო მასალა
დამატებითი ინფორმაციისთვის იხილეთ ჰოლტეკი webსაიტი: www.holtek.com
ვერსიები და მოდიფიკაციის ინფორმაცია
თარიღი | ავტორი | გათავისუფლება | მოდიფიკაციის ინფორმაცია |
2022.04.30 | 蔡期育 (ჩი-იუ ცაი) | V1.00 | პირველი ვერსია |
პასუხისმგებლობის უარყოფა
ყველა ინფორმაცია, სასაქონლო ნიშანი, ლოგოები, გრაფიკა, ვიდეო, აუდიო კლიპები, ბმულები და სხვა ნივთები, რომლებიც გამოჩნდება მასზე webსაიტი („ინფორმაცია“) არის მხოლოდ მითითებისთვის და ექვემდებარება შეცვლას ნებისმიერ დროს წინასწარი შეტყობინების გარეშე და Holtek Semiconductor Inc.-ისა და მასთან დაკავშირებული კომპანიების შეხედულებისამებრ (შემდგომში „Holtek“, „კომპანია“, „ჩვენ“, „ ჩვენ" ან "ჩვენი"). მიუხედავად იმისა, რომ Holtek ცდილობს უზრუნველყოს ამის შესახებ ინფორმაციის სიზუსტე webსაიტზე, Holtek-ის მიერ არ არის გაცემული რაიმე გამოხატული ან ნაგულისხმევი გარანტია ინფორმაციის სიზუსტეზე. Holtek არ აგებს პასუხისმგებლობას არასწორად ან გაჟონვაზე.
Holtek არ არის პასუხისმგებელი რაიმე ზიანისათვის (მათ შორის, მაგრამ არ შემოიფარგლება კომპიუტერული ვირუსით, სისტემის პრობლემებით ან მონაცემთა დაკარგვით) ნებისმიერი სახის ზარალზე, რომელიც წარმოიქმნება ამ გამოყენებისას ან გამოყენებასთან დაკავშირებით. webსაიტი ნებისმიერი მხარის მიერ. ამ ზონაში შეიძლება იყოს ბმულები, რომლებიც საშუალებას მოგცემთ ეწვიოთ webსხვა კომპანიების საიტები.
ესენი webსაიტებს არ აკონტროლებს Holtek. Holtek არ იქნება პასუხისმგებელი და არავითარი გარანტია ასეთ საიტებზე ნაჩვენები ნებისმიერი ინფორმაციის მიმართ. ჰიპერბმულები სხვასთან webსაიტები თქვენი რისკის ქვეშაა.
პასუხისმგებლობის შეზღუდვა
არავითარ შემთხვევაში Holtek Limited არ იქნება პასუხისმგებელი რომელიმე სხვა მხარის წინაშე რაიმე დანაკარგზე ან ზიანზე, რომელიც გამოწვეულია პირდაპირ ან ირიბად თქვენს მიერ ამ წვდომასთან ან გამოყენებასთან დაკავშირებით. webსაიტი, მასში არსებული შინაარსი ან ნებისმიერი საქონელი, მასალა ან მომსახურება.
მარეგულირებელი კანონი
პასუხისმგებლობის შეზღუდვა შეიცავს webსაიტი იმართება და განიმარტება ჩინეთის რესპუბლიკის კანონმდებლობის შესაბამისად. მომხმარებლები წარუდგენენ ჩინეთის რესპუბლიკის სასამართლოების არაექსკლუზიურ იურისდიქციას.
პასუხისმგებლობის შეზღუდვის განახლება
Holtek იტოვებს უფლებას განაახლოს პასუხისმგებლობის შეზღუდვა ნებისმიერ დროს წინასწარი გაფრთხილებით ან მის გარეშე, ყველა ცვლილება ძალაშია გამოქვეყნებისთანავე webსაიტი.
დოკუმენტები / რესურსები
![]() |
HOLTEK HT32 MCU UART განაცხადის შენიშვნა [pdf] მომხმარებლის სახელმძღვანელო HT32 MCU, UART განაცხადის შენიშვნა, HT32 MCU UART, განაცხადის შენიშვნა, HT32, MCU UART განაცხადის შენიშვნა, HT32 MCU UART განაცხადის შენიშვნა |