Агуулгын хүснэгт:
- Алхам 1: Техник хангамж ба програм хангамжийн шаардлага
- Алхам 2: Асуудлыг ойлгох
- Алхам 3: STM32CubeMX -ийн тохиргоо
- Алхам 4: Keil програм хангамж хөгжүүлэх
- Алхам 5: Дүгнэлт
Видео: STM32CubeMX товчлуур тасалдсан тохиолдолд 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Сайн байна уу, энэ гарын авлагад товчлуур унахаас урьдчилан сэргийлэх энгийн шийдлийг өгөхийг хичээх болно. Интернет дээр энэ асуудлыг шийдэх олон видеонууд байдаг, гэхдээ гадны тасалдал биш юм. Эдгээр бүх видеонуудын товчлуурыг дарах нь үр дүн багатай санал асуулгын аргаар шалгагддаг. Тиймээс, эхэлцгээе!
Алхам 1: Техник хангамж ба програм хангамжийн шаардлага
Тоног төхөөрөмжийн шаардлага:
- STM32 ARM хөгжүүлэх самбар
- Компьютер
Програм хангамжийн шаардлага:
- STM32CubeMX
- Keil uVision5
Алхам 2: Асуудлыг ойлгох
Тиймээс, бид товчлуурыг үсрэх асуудлын шийдлийг олохыг хичээдэг. Тиймээс бид асуудлыг ойлгох ёстой. Тиймээс, бид товчлуурыг дарахад өмнөх төлөвөөсөө эсрэг төлөв гарч ирэх ёстой. Жишээлбэл, хэрэв энэ нь өндөр байсан бол энэ нь бага байх ёстой, хэрэв энэ нь бага байсан бол өндөр байх ёстой. Гэсэн хэдий ч энэ бол хамгийн тохиромжтой төлөв (PROTEUS дээр:)) Бодит байдал дээр бид товчлуурыг дарахад сул зогсолт эхлэхээс өмнө HIGH ба LOW хооронд шилжиж эхэлдэг. Тиймээс хэд хэдэн удаа дарагдсан мэт дүр эсгэж, энэ нь асуудал үүсгэдэг. Тэгэхээр, бид юу хийх ёстой вэ?
Энэ жишээнд бид товчлуур дарахыг илрүүлэхийн тулд гадны тасалдлыг ашиглах болно гэдгийг энд тэмдэглэхийг хүсч байна. Тиймээс товчлуурыг дарсны дараа бид сул зогсолтонд орохын тулд 50mS гэх мэт хэсэг хугацаа хүлээх хэрэгтэй бөгөөд товчлуур сул байгаа эсэхийг дахин шалгах хэрэгтэй. Хэрэв энэ нь сул зогссон бол бид үүргээ үргэлжлүүлж болно. Тиймээс кодыг харцгаая:)
Алхам 3: STM32CubeMX -ийн тохиргоо
Тиймээс бид эхлээд товчлуурын товчлуурынхаа гаднах тасалдлыг идэвхжүүлэх хэрэгтэй (энд та STM32F407VG нээлтийн самбарыг ашигладаг гэж бодож байна):
- "Pinout & Configuration" таб дээр товчлуурт холбогдсон PA0 зүү дээр товшоод GPIO_EXTI0 -ийг сонгоод энэ зүү дээр гадуур тасалдах боломжтой болно.
- Зүү "хэрэглэгчийн шошго" -ыг "Push_Button" эсвэл хүссэн зүйл болгон өөрчил.
Дараа нь бид 50mS хугацааны хоцрогдол үүсгэхийн тулд таймерыг тохируулах хэрэгтэй.
- "Цаг хэмжигч" хэсгийг оруулна уу
- TIM1 дээр дарна уу
- Цагийн эх сурвалж болох "Дотоод цаг" -ыг сонгоно уу
-
Тохиргооны хувьд (Хэрэв та энэ хэсгийг ойлгохыг хүсч байвал "STM32F4 ARM MCU -тай Servo Motor Control" гэсэн зөвлөмжийг үзнэ үү):
- Урьдчилан тооцоолох төхөөрөмжийг 32000 болгож тохируулна уу
- Мөн тоолох хугацаа 50 хүртэл
- "NVIC Тохиргоо" таб дээр бүх тасалдлыг идэвхжүүлнэ үү
LED -ийг гаралт болгон идэвхжүүлэх:
PD12 дээр дарж "GPIO_Output" болгож тохируулна уу
Дараа нь дээрх зураг дээрх шиг цагийг тохируулаад кодыг үүсгэнэ үү.
Алхам 4: Keil програм хангамж хөгжүүлэх
Нэгдүгээрт, бид төрийн хувьсагчийг тодорхойлдог бөгөөд энэ нь үсрэх үед гадны тасалдал дотор таймерыг эхлүүлэхгүй байх боломжийг олгодог.
/ * USER CODE BEGIN PFP */bool state = true; / * ХЭРЭГЛЭГЧИЙН КОД БҮРТГЭЛИЙГ ДУУСГАХ */
Дараа нь бид ISR -ийг гадны тасалдалд зориулж бичнэ.
хүчингүй HAL_GPIO_EXTI_Callback (uint16_t GPIO_Pin) {if (GPIO_Pin == Push_Button_Pin && state == true) {HAL_TIM_Base_Start_IT (& htim1); төлөв = худал; } өөр {_NOP (); }}
Товчлуурыг дарахад энэ нь бидний тодорхойлсон товчлуур байсан эсэх, төлөв үнэн эсэхийг шалгадаг. If мэдэгдлийг оруулахын тулд эхэнд муж үнэн байх болно. Орсны дараа бид таймерыг асааж, таймерыг дахин эхлүүлэхгүйн тулд худал гэж хэлдэг.
Дараа нь бид таймер тасалдахын тулд ISR бичнэ.
void HAL_TIM_PeriodElapsedCallback (TIM_HandleTypeDef *htim) { / *Ашиглагдаагүй аргументын эмхэтгэлийн анхааруулга * / UNUSED (htim) -ээс урьдчилан сэргийлэх;
/* ТАЙЛБАР: Буцаах шаардлагатай бол энэ функцийг өөрчлөх ёсгүй.
HAL_TIM_PeriodElapsedCallback нь хэрэглэгчийн файлд хэрэгжиж болно */ if (HAL_GPIO_ReadPin (Push_Button_GPIO_Port, Push_Button_Pin) == GPIO_PIN_RESET) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_) төлөв = үнэн; HAL_TIM_Base_Stop_IT (& htim1); }}
/ * ХЭРЭГЛЭГЧИЙН КОД ТӨГСГӨЛ 4/ *
50mS -ийн дараа товчлуур дахин тохируулагдсан эсвэл суллагдсан эсэхийг шалгана уу, хэрэв тийм бол энэ товчлуур идэвхгүй байдалд байгааг бид мэднэ. Дараа нь бид дахин асаахын тулд товчлуурыг дарж, цагийг зогсоох өөр товчлуурыг илрүүлэхийн тулд удирдагчийг асааж, нөхцөлийг үнэн болгоно.
Тиймээс энэ үйл явц нь бид үсрэхээс урьдчилан сэргийлэх болно.
Алхам 5: Дүгнэлт
Энэ бол товчлуурыг тайлах код байв. Энэ кодыг миний боловсруулсан бөгөөд би туршлагатай програмист биш гэдгийг тэмдэглэхийг хүсч байна. Тиймээс алдаа гарах нь гарцаагүй. Хэрэв танд илүү сайн шийдэл байгаа бол үүнийг анхаарна уу. Бүү мартаарай, хэрэв танд ямар нэгэн асуудал тулгарвал надад бичээрэй, би туслахыг хичээх болно.
Зөвлөмж болгож буй:
DIY AC/ DC Hack "Mod" RD6006 Цахилгаан хангамж ба S06A тохиолдолд W/ S-400-60 PSU бүтээх, DC оролтыг сайжруулах: 9 алхам
DIY AC/ DC Hack "Mod" RD6006 Цахилгаан хангамж ба S06A хайрцаг W/ S-400-60 PSU бүтээх, сайжруулсан DC оролт: Энэхүү төсөл нь S06A хайрцаг ба S-400-60 цахилгаан хангамжийг ашиглан үндсэн RD6006 бүтээн байгуулалт юм. . Гэхдээ би зөөвөрлөх эсвэл цахилгаан тасрахын тулд зайг холбох сонголттой байхыг хүсч байна. Тиймээс би DC -ийг эсвэл батерейг хүлээн авахын тулд хэргийг хакердсан эсвэл өөрчилсөн
To -Go Cup Lantern - DIY тасалдсан хэлхээний гэрэл: 11 алхам
To -Go Cup Lantern - DIY тасалдсан хэлхээний гэрэл: Та тасалдсан хэлхээний гогцоо хийх болно. Энэ нь тагны тагийг ашиглан асааж, унтраадаг. Энэхүү төслийг маш их тохируулах боломжтой бөгөөд таны хэлхээ бүрэн байгаа эсэхийг шалгаарай, ингэснээр зай нь LED -тэй холбогдож, үүнийг өөрийн болгох боломжтой
Alexa ур чадвар: Хамгийн сүүлийн жиргээг уншина уу (Энэ тохиолдолд бурхан): 6 алхам
Alexa ур чадвар: Хамгийн сүүлийн жиргээг уншина уу (Энэ тохиолдолд бурхан): Би " Бурханы хамгийн сүүлийн жиргээ " - агуулга, өөрөөр хэлбэл Daily Show инээдмийн зохиолч байсан 5 сая гаруй захиалагчийн @TweetOfGod-ээс авсан мэдээлэл. Энэ нь IFTTT (If This That That), Google Spreadsheet болон
Бага чадалтай тасалдсан төхөөрөмжийн одоогийн дундаж хэрэглээг тодорхойлох: 4 алхам
Цахилгаан багатай тасалдсан төхөөрөмжийн одоогийн дундаж хэрэглээг тодорхойлох: Танилцуулга Би алсын зайны температур мэдрэгч дээр батерей хэр удаан ажиллах боломжтой болохыг мэдэхийг хүссэн юм. АА -ийн хоёр эсийг цувралаар авах шаардлагатай боловч цахилгаан зарцуулагдаж байгаа тул амперметрийг дараалалд байрлуулж, дэлгэцийг харахад тийм ч их тус болохгүй
AVR микроконтроллер. Таймер ашиглан LED гэрэлтүүлэгч. Таймер тасалдсан. Таймер CTC горим: 6 алхам
AVR микроконтроллер. Таймер ашиглан LED гэрэлтүүлэгч. Таймер тасалдсан. Таймер CTC горим: Бүгдээрээ сайн уу! Таймер бол электроникийн салбарт чухал ойлголт юм. Цахим бүрэлдэхүүн бүр цаг хугацааны үндсэн дээр ажилладаг. Энэ цагийн суурь нь бүх ажлыг синхрончлоход тусалдаг. Бүх микроконтроллерууд урьдчилан тодорхойлсон цагийн давтамжтайгаар ажилладаг