Image of Zooming into UART with the  CH32V003F4P6

Zoomar in på UART med CH32V003F4P6

  • August 12, 2025
  • |
  • Curious Scientist

När Curious Scientist lanserade sin handledning om CH32V003F4P6 – USART basics kändes det som att upptäcka en hemlig superkraft. Den tar saker längre än GPIO: du lär dig att ta emot tecken från din PC, skicka tillbaka dem och till och med växla lysdioder baserat på seriella kommandon – allt med hjälp av den enkla seriella länken mellan ditt chip och terminal.

Deras guidade exempel:

  • Konfigurerar en icke-blockerande echoCharacterUSART()-rutin: läser RXNE-flaggan, hämtar data och skickar omedelbart tillbaka den.

  • Låter dig skicka enkla kommandon från din PC för att växla lysdioder (tecken "1" till "4").

  • Visar hur seriell inmatning kan styra beteendet – utan att röra till din huvudloop för mycket Curious Scientist.

Det är en solid grund, särskilt om du vill skicka ett kommando för att starta ADC-sampling, eller styra sensorer, eller bara imponera på dina vänner genom att blinka lampor från terminalen.


UART:s legendariska födelse: Från rumsstora kretskort till små chip

Låt oss ta en tidsmaskin tillbaka till 1960-talet. DEC-ingenjören Gordon Bell behövde ett pålitligt sätt att ansluta Teletype-maskiner till en PDP-1-dator. Lösningen? Ett samplingbaserat helt digitalt gränssnitt – den första UART:en, byggd på en modul i kretskortsstorlek som kunde överbelasta ditt skrivbord.

År 1971 lade Western Digital den magin i ett enda chip – WD1402A UART, som befriade enheter från det tråkiga arbetet med handinställda analoga kretsar. Därifrån blev chip som National 8250, och senare 16550 med sin FIFO-buffert, serialiserade standarder i IBM PC:s och modem på 80- och 90-talen.

Idag är UART inte flashigt, men det finns kvar i varje MCU, routerkonsol och inbäddad debug-port – även om vi har USB och Ethernet som är mycket snabbare och coolare.


Hur UART faktiskt fungerar (utan att somna)

  • Asynkron överföring: Ingen delad klocka. Istället är varje byte insvept i start- och stoppbitsgrindar.

  • Dataframing: Vanligtvis 5–8 databitar, valfri paritet och stoppbitar (1–2) för att markera bytegränser.

  • Baud rate-synkronisering: Båda sidor måste komma överens om bit timing – vanligtvis inom 90% noggrannhet annars blir det konstigt. Linjesignalering: Inaktiva linjer är "höga" (tack vare morsekodsarvet), och övergångar representerar data.

  • Flödeskontroll och buffring: Tidiga UART:er erbjöd en enkel seriell handskakning; senare introducerade 16550 en 16-bytes FIFO för att buffra inkommande data – inga fler tappade tecken om CPU:n blir trög.

UART-chip är antingen fristående eller inbyggda i mikrokontroller – som USART-periferin i CH32V003F4P6 (som även kan hantera synkront läge om du gillar det).


Varför det fortfarande är viktigt – med en CH32V003F4P6-twist

Handledningen från Curious Scientist ger dig en praktisk start. Men att förstå den tekniska arvet och UART-mekaniken förvandlar dig från en kopierings- och inklistrare till en seriell-kunnig hacker.

Med CH32V003F4P6 har du att göra med:

  • Full duplex USART1 med RXNE- och TXE-flaggor

  • Avbrottsaktiverade rutiner som echoCharacterUSART()

  • Kommando-baserad LED-växling (som '1', '2', etc.)

  • Framtidssäker möjlighet att utlösa ADC-läsningar via seriella kommandon, eller skicka sensordata tillbaka till PC:n – allt som du vill

Vill du ha hela handledningen? Kolla in den här och säg "hej" till Curious Scientist från oss:

Lämna en kommentar

Observera att kommentarer måste godkännas innan de publiceras.