- குறுக்கீடுகள் மற்றும் ஐ.எஸ்.ஆர் வகைகள்
- STM32 இல் குறுக்கீட்டிற்கான தொடரியல்
- கூறுகள் தேவை
- சுற்று வரைபடம் மற்றும் இணைப்புகள்
- குறுக்கீடுகளுக்கு STM32F103C8 புரோகிராமிங்
குறுக்கீடுகள் என்பது ஒரு I / O அல்லது ஒரு அறிவுறுத்தல் செயலியின் இயல்பான செயல்பாட்டை நிறுத்திவைக்கக்கூடிய ஒரு பொறிமுறையாகும், மேலும் அது அதிக முன்னுரிமையைப் பெற்றிருப்பதால் தன்னை சேவையாற்றுகிறது. எடுத்துக்காட்டாக, ஒரு சாதாரண மரணதண்டனை செய்யும் செயலி ஒருவித நிகழ்வை அல்லது தொடர்ந்து நிகழும் குறுக்கீட்டையும் தொடர்ந்து கண்காணிக்க முடியும். வெளிப்புற குறுக்கீடு நிகழும்போது (சில சென்சாரிலிருந்து) பின்னர் செயலி அதன் இயல்பான செயல்பாட்டை இடைநிறுத்தி முதலில் குறுக்கீட்டிற்கு சேவை செய்து அதன் இயல்பான செயல்பாட்டைத் தொடர்கிறது.
இந்த திட்டத்தில், STM32F103C8 இல் உள்ள குறுக்கீடுகளைப் புரிந்துகொள்ள, புஷ் பொத்தானை வெளிப்புற குறுக்கீடாகப் பயன்படுத்துவோம். இங்கே நாம் 0 இலிருந்து ஒரு எண்ணை அதிகரித்து 16x2 எல்சிடியில் காண்பிப்போம், மேலும் புஷ் பொத்தானை அழுத்தும் போதெல்லாம் லெட் ஆன் மற்றும் எல்சிடி டிஸ்ப்ளே இன்டர்ரூப்டைக் காட்டுகிறது. பொத்தானை வெளியிட்டவுடன் எல்.ஈ.டி அணைக்கப்படும்.
குறுக்கீடுகள் மற்றும் ஐ.எஸ்.ஆர் வகைகள்
குறுக்கீடுகளை பரவலாக இரண்டு வகைகளாக வகைப்படுத்தலாம்:
வன்பொருள் குறுக்கீடுகள்: செயலிக்கான சமிக்ஞை பொத்தான் அல்லது சென்சார் போன்ற சில வெளிப்புற சாதனங்களிலிருந்து வந்தால் அல்லது ஒரு சமிக்ஞையை உருவாக்கும் வேறு சில வன்பொருள் சாதனத்திலிருந்து வந்தால் மற்றும் ஐ.எஸ்.ஆரில் இருக்கும் குறிப்பிட்ட பணியைச் செய்ய செயலியைக் கூறினால் வன்பொருள் குறுக்கீடுகள் என அழைக்கப்படுகிறது.
மென்பொருள் குறுக்கீடுகள்: மென்பொருள் அறிவுறுத்தல்களால் உருவாக்கப்படும் குறுக்கீடுகள்.
சேவை வழக்கமான குறுக்கீடு
குறுக்கீடு சேவை வழக்கம் அல்லது குறுக்கீடு கையாளுபவர் என்பது அதில் சிறிய வழிமுறைகளைக் கொண்ட ஒரு நிகழ்வாகும், மேலும் குறுக்கீடு ஏற்பட்டால் செயலி முதலில் ஐ.எஸ்.ஆரில் இருக்கும் இந்த குறியீட்டை செயல்படுத்துகிறது, பின்னர் குறுக்கீடு செய்வதற்கு முன்பு செய்துகொண்டிருந்த பணியைத் தொடரவும்.
STM32 இல் குறுக்கீட்டிற்கான தொடரியல்
ஆர்டுயினோவில் ஐ.எஸ்.ஆர் தொடரியல் இணைப்பு இன்டெரப்ட் (டிஜிட்டல் பின்டோ இன்டெரப்ட் (முள்), ஐ.எஸ்.ஆர், பயன்முறை) ஐப் பின்பற்றுகிறது, மேலும் குறியீட்டைப் பதிவேற்ற ஆர்டுயினோ ஐடிஇயைப் பயன்படுத்துவதால் எஸ்.டி.எம் 32 இல் இதைப் பயன்படுத்தலாம்.
- DigitalPinToInterrupt (pin): Arduino board Uno ஐப் போலவே எங்களிடம் ஊசிகளும் 2,3 உள்ளன, மேலும் மெகாவில் 2,3,18,19,20,21 குறுக்கீடுகளுக்கு உள்ளன. STM32F103C8 இல் எங்களிடம் குறுக்கீடு ஊசிகளும் உள்ளன, எந்த GPIO ஊசிகளையும் குறுக்கீடுகளுக்குப் பயன்படுத்தலாம். குறுக்கீட்டிற்கு நாங்கள் பயன்படுத்தும் உள்ளீட்டு முள் குறிப்பிட வேண்டும். ஆனால் ஒரே நேரத்தில் ஒன்றுக்கு மேற்பட்ட குறுக்கீடுகளைப் பயன்படுத்தும் போது நாம் சில கட்டுப்பாடுகளைப் பின்பற்ற வேண்டியிருக்கலாம்.
- ஐ.எஸ்.ஆர்: இது ஒரு குறுக்கீடு கையாளுதல் செயல்பாடு, இது வெளிப்புற குறுக்கீடு ஏற்படும் போது அழைக்கப்படுகிறது. இதற்கு வாதங்கள் மற்றும் வெற்றிட திரும்ப வகை இல்லை.
- பயன்முறை: குறுக்கீட்டைத் தூண்டுவதற்கான மாற்றம் வகை
- ரைசிங்: முள் LOW இலிருந்து HIGH க்கு மாறும்போது குறுக்கீட்டைத் தூண்டுவதற்கு.
- வீழ்ச்சி: முள் உயரத்திலிருந்து குறைந்ததாக மாறும்போது குறுக்கீட்டைத் தூண்டுவதற்கு.
- மாற்று: முள் LOW இலிருந்து HIGH அல்லது HIGH to LOW (அதாவது, முள் மாறும்போது) மாறும்போது குறுக்கீட்டைத் தூண்டுவதற்கு.
குறுக்கீட்டைப் பயன்படுத்தும் போது சில நிபந்தனைகள்
- குறுக்கீடு சேவை வழக்கமான செயல்பாடு (ஐ.எஸ்.ஆர்) முடிந்தவரை குறுகியதாக இருக்க வேண்டும்.
- ஐஎஸ்ஆருக்குள் தாமதம் () செயல்பாடு செயல்படாது, தவிர்க்கப்பட வேண்டும்.
கூறுகள் தேவை
- STM32F103C8
- புஷ் பொத்தான்
- எல்.ஈ.டி.
- மின்தடை (10 கே)
- எல்சிடி (16 எக்ஸ் 2)
சுற்று வரைபடம் மற்றும் இணைப்புகள்

புஷ் பொத்தான் முள் ஒரு பக்கம் STM32 இன் 3.3V உடன் இணைக்கப்பட்டுள்ளது, மறுபுறம் STM32 இன் உள்ளீட்டு முள் (PA0) உடன் புல் டவுன் மின்தடை வழியாக இணைக்கப்பட்டுள்ளது.
புல் டவுன் மின்தடையம் பயன்படுத்தப்படுகிறது, இதனால் மைக்ரோகண்ட்ரோலர் பொத்தானை அழுத்தும்போது அல்லது வெளியிடும்போது அதன் உள்ளீட்டில் அதிக அல்லது குறைந்த அளவு மட்டுமே கிடைக்கும். இல்லையெனில், மின்தடையத்தை இழுக்காமல், MCU குழப்பமடைந்து சில சீரற்ற மிதக்கும் மதிப்புகளை உள்ளீட்டிற்கு அளிக்கலாம்.

STM32F103C8 மற்றும் LCD க்கு இடையிலான இணைப்பு
பின்வரும் அட்டவணை எல்சிடி (16 எக்ஸ் 2) மற்றும் எஸ்.டி.எம் 32 எஃப் 103 சி 8 மைக்ரோகண்ட்ரோலருக்கு இடையிலான முள் இணைப்பைக் காட்டுகிறது.
|
STM32F103C8 |
எல்.சி.டி. |
|
ஜி.என்.டி. |
வி.எஸ்.எஸ் |
|
+ 5 வி |
வி.டி.டி. |
|
பொட்டென்டோமீட்டர் சென்டர் பின் |
வி 0 |
|
பிபி 0 |
ஆர்.எஸ் |
|
ஜி.என்.டி. |
ஆர்.டபிள்யூ |
|
பிபி 1 |
இ |
|
பிபி 10 |
டி 4 |
|
பிபி 11 |
டி 5 |
|
பிசி 13 |
டி 6 |
|
பிசி 14 |
டி 7 |
|
+ 5 வி |
அ |
|
ஜி.என்.டி. |
கே |

குறுக்கீடுகளுக்கு STM32F103C8 புரோகிராமிங்
இந்த டுடோரியலுக்கான நிரல் எளிதானது மற்றும் இந்த டுடோரியலின் முடிவில் கொடுக்கப்பட்டுள்ளது. STM32 ஐ நிரல் செய்ய எங்களுக்கு FTDI புரோகிராமர் தேவையில்லை, உங்கள் கணினியை STM32 இன் USB போர்ட்டுடன் இணைத்து Arduino IDE உடன் நிரலாக்கத்தைத் தொடங்கவும். யூ.எஸ்.பி போர்ட் மூலம் STM32 நிரலாக்கத்தைப் பற்றி மேலும் அறிக.
இந்த டுடோரியலில் இங்கே 0 இலிருந்து ஒரு எண்ணை அதிகரிக்கப் போகிறோம், அதை 16x2 எல்சிடியில் காண்பிக்கப் போகிறோம், ஒரு புஷ் பொத்தானை அழுத்தும் போதெல்லாம் லெட் ஓன் மற்றும் எல்சிடி டிஸ்ப்ளே 'இன்டர்ரூப்' ஐக் காட்டுகிறது.
முதலில் STM32 உடன் எல்சிடி பின்ஸ் இணைப்புகளை வரையறுக்கவும். உங்கள் தேவைகளுக்கு ஏற்ப அதை மாற்றலாம்.
const int rs = PB10, en = PB11, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14;
அடுத்து, எல்சிடி காட்சிக்கான தலைப்பு கோப்பை நாங்கள் சேர்க்கிறோம். எஸ்.டி.எம் 32 எல்.சி.டி உடன் எவ்வாறு தொடர்பு கொள்ள வேண்டும் என்பதற்கான குறியீட்டைக் கொண்டிருக்கும் நூலகத்தை இது அழைக்கிறது. நாம் மேலே வரையறுக்கப்பட்ட முள் பெயர்களுடன் லிக்விட் கிரிஸ்டல் செயல்பாடு அழைக்கப்படுகிறது என்பதையும் உறுதிப்படுத்தவும்.
சேர்க்கிறது
ஐ.எஸ்.ஆருக்கும் முக்கிய நிரலுக்கும் இடையில் தரவை அனுப்ப உலகளாவிய மாறிகள் பயன்படுத்தப்படுகின்றன. லீட்ஆன் என்ற மாறியை கொந்தளிப்பானதாகவும், உண்மை அல்லது பொய்யைக் குறிப்பிடுவதற்கு பூலியன் என்றும் அறிவிக்கிறோம்.
ஆவியாகும் பூலியன் ledOn = பொய்;
உள்ளே வெற்றிடத்தை அமைப்பு () செயல்பாடு, நாம் ஒரு அறிமுக செய்தி காட்ட மற்றும் 2 விநாடிகள் கழித்து அது நீக்கிவிடும்.
lcd.begin (16,2); lcd.print ("CIRCUIT DIGEST"); தாமதம் (2000); lcd.clear ();
மீண்டும் அதே வெற்றிட அமைவு () செயல்பாட்டில், உள்ளீடு மற்றும் வெளியீட்டு ஊசிகளைக் குறிப்பிட வேண்டும். எல்.ஈ.டிக்கு வெளியீட்டிற்கான முள் PA1 மற்றும் புஷ் பொத்தானிலிருந்து உள்ளீட்டிற்கு PA0 ஆகியவற்றை அமைத்துள்ளோம்.
pinMode (PA1, OUTPUT) pinMode (PA0, INPUT)
நாங்கள் ஒரு எண்ணை அதிகரிக்கப் போகிறோம், எனவே மதிப்பு பூஜ்ஜியத்துடன் ஒரு மாறியை அறிவிக்கவும்.
int i = 0;
இப்போது குறியீட்டின் முக்கியமான பகுதி இணைப்பு இன்டெரப்ட் () செயல்பாடு, இது வெற்றிட அமைப்பிற்குள் சேர்க்கப்பட்டுள்ளது ()
attachInterrupt (DigitalPinToInterrupt (PA0), buttonPressed, CHANGE)
வெளிப்புற குறுக்கீட்டிற்கான முள் PA0 ஐ நாங்கள் குறிப்பிட்டோம், மேலும் PA0 முள் மாற்றத்தில் (குறைந்த முதல் உயரம் அல்லது உயர்விலிருந்து) இருக்கும் போது அழைக்கப்பட வேண்டிய செயல்பாடு பொத்தானை அழுத்துகிறது. தேவைக்கேற்ப வேறு எந்த செயல்பாட்டு பெயர், முள் மற்றும் பயன்முறையையும் நீங்கள் பயன்படுத்தலாம்.
வெற்றிட சுழற்சியின் உள்ளே () பூஜ்ஜியத்திலிருந்து ஒரு எண்ணை (i) அதிகரித்து எல்சிடி (16x2) இல் எண்ணை அச்சிடுகிறோம்.
lcd.clear (); lcd.print ("NUMBER:"); lcd.print (i); ++ நான்; தாமதம் (1000);
AttachInterrupt () செயல்பாட்டில் நாம் பயன்படுத்திய பெயருக்கு ஏற்ப குறுக்கீடு கையாளுதல் செயல்பாட்டை உருவாக்குவது மிக முக்கியமான பகுதியாகும். நாங்கள் பொத்தானை அழுத்தினோம், எனவே இங்கே ஒரு செயல்பாடு வெற்றிட பொத்தானை உருவாக்கியுள்ளோம் ()
void buttonPressed () { if (ledOn) { ledOn = false; டிஜிட்டல்ரைட் (PA1, LOW); } else { ledOn = உண்மை; டிஜிட்டல்ரைட் (PA1, HIGH); lcd.setCursor (0,1); lcd.print ("குறுக்கீடு"); } }
இந்த பொத்தானின் வேலை அழுத்தப்பட்ட () ஐ.எஸ்.ஆர்:
லெட்ஆன் மாறியின் மதிப்பின் படி, எல்.ஈ.டி ஆன் மற்றும் ஆஃப் ஆகிறது.
|
பட்டன் நிலை |
ledOn (மதிப்பு) |
எல்.ஈ.டி (சிவப்பு) |
எல்சிடி (16 எக்ஸ் 2) |
|
UNPRESSED |
பொய் |
முடக்கப்பட்டுள்ளது |
- |
|
அழுத்தப்பட்டது |
உண்மை |
இயக்கப்பட்டது |
'' INTERRUPT 'ஐக் காட்டுகிறது |
என்றால் Ledon மதிப்பு தவறான பின்னர் LED எஞ்சியுள்ள அணைக்கப்பட்டு என்றால் Ledon பின்னர் LED மதிப்பு சரியாக அதை எல்சிடி காட்சி நிகழ்ச்சிகள் 'குறுக்கீட்டு' மீது திருப்பங்களை மற்றும்.
குறிப்பு: சில நேரங்களில் சுவிட்ச் டிபவுன்ஸ் விளைவு இருக்கலாம் மற்றும் புஷ்பட்டன் அழுத்தும் போது அது பல தூண்டுதல்களைக் கணக்கிடக்கூடும், ஏனென்றால் புஷ் பொத்தானை மாற்றுவதற்கான இயந்திர காரணத்தால் மின்னழுத்தத்தில் பல கூர்முனைகள். ஆர்.சி வடிப்பானை அறிமுகப்படுத்துவதன் மூலம் இதைக் குறைக்கலாம்.
STM32F103C8 இல் குறுக்கீடுகளின் முழுமையான வேலை கீழே உள்ள வீடியோவில் காட்டப்பட்டுள்ளது.
