bir 2 bayt Hex değerine bir tamsayı dönüştürme, bir I2C adresi belirlemek için '0x00' şeklinde bir Hex adresini okumalıdır.bir Tkinter GUI için Python
GUI başlatma:
Şu anda bunu yaparken am aşağıdaki şekilde kısmen kod görüldüğü gibi, gerçek bir Hex değer bu tam sayı dönüştürücü, bir tam sayıya dize dönüştürme, bir dizi olarak giriş okuyarak Sonra işlevi içindeself.I2CAddress=StringVar()
self.I2CAddress.set("0x00") #Sets Default value of '0x00'
Label(frame, text="Address: ").grid(row=5, column=4)
Entry(frame, textvariable=self.I2CAddress).grid(row=5, column=5)
:
addr = self.I2CAddress.get()
addrint = int(addr, 16)
addrhex = hex(addrint)
Bu en değerler için çalışır ama sorunum ben böyle '0x01' gibi küçük Hex değeri dize girerseniz, bu 1 doğru tamsayıya dönüştürür yani, ama sonra 0x01 yerine 0x1 Hex değerine dönüştürülür.
EE'miyim ve çok sınırlı programlama deneyimim var, bu nedenle her türlü yardım büyük beğeni topluyor.
teşekkür ederiz! Bir çekicilik gibi çalıştım, gerçekten çok memnun oldum –
Bu kadar çabuk cevapladınız, bana izin vermeden önce birkaç dakika beklemeliyim, ama kesinlikle –
olacaktır. Sadece "0x" yerine "{: # 02x}' ifadesini kullanabilirsiniz. '#', Hex numaraları '0x' olan" standart önek "ekleyecektir. (Bu,% -formatting ve C 'printf' ve POSIX komut satırı' printf' vb. Ile de aynı şekilde çalışır.) – abarnert