Godagens!
Jag håller på och designar ett schema med en STM32F103C6T6 och jag har ett problem.
När jag designar så använder jag USARTen, men bara RX & TX, och på RTS och CTS behöver jag ha vanliga inputs som jag kan köra interrupts på.
Går det att "remapa" så RTS och CTS inte används så det blir vanliga ingångar?
Jag har letat livet ur mig i RM0008 (referensmanualen) men lyckas inte hitta hur man gör och vad jag vet så ska Cortex-M3 stödja detta (kan göra det med lätthet på min LPC1768).
Kan någon hjälpa mig i rätt riktning?
Mvh
Emil Fresk
STM32F103 remap av pinnar?
Re: STM32F103 remap av pinnar?
kolla på sida 166 i RM0008
eller sök på "USART alternate function remapping" i RM0008
CTSIE: CTS interrupt enable
0: Interrupt is inhibited
1: An interrupt is generated whenever CTS=1 in the USART_SR register
CTSE: CTS enable
0: CTS hardware flow control disabled
1: CTS mode enabled, data is only transmitted when the nCTS input is asserted (tied to 0).
RTSE: RTS enable
0: RTS hardware flow control disabled
1: RTS interrupt enabled, data is only requested when there is space in the receive buffer.
Med denna info så borde jag lugnt kunna säga att du kan använda dom andra pinnarna till ingångar med interupt.
eller sök på "USART alternate function remapping" i RM0008
CTSIE: CTS interrupt enable
0: Interrupt is inhibited
1: An interrupt is generated whenever CTS=1 in the USART_SR register
CTSE: CTS enable
0: CTS hardware flow control disabled
1: CTS mode enabled, data is only transmitted when the nCTS input is asserted (tied to 0).
RTSE: RTS enable
0: RTS hardware flow control disabled
1: RTS interrupt enabled, data is only requested when there is space in the receive buffer.
Med denna info så borde jag lugnt kunna säga att du kan använda dom andra pinnarna till ingångar med interupt.
Re: STM32F103 remap av pinnar?
Glöm bara inte att distribuera klockan till remapfuntionen:
RCC_APB2PeriphClockCmd (RCC_APB2Periph_AFIO, ENABLE);
Det tog mig minst en dag att fatta att även detta behövde göras!
RCC_APB2PeriphClockCmd (RCC_APB2Periph_AFIO, ENABLE);
Det tog mig minst en dag att fatta att även detta behövde göras!
Re: STM32F103 remap av pinnar?
Men menar du remap som i att flytta funktionen till en annan pinne? Eller bara att du vill använda CTS/RTS pinnarna som vanlig IO?
I det senare fallet så är det väl bara låta bli att sätta RTSE/CTSE i USARTx->CR3, dvs inte slå på hårdvaru-flödes-kontroll.
Jag har t.ex. använt PA11/USART1_CTS som utgång samtidigt med USART1 och SPI2. USART3 och SPI2 samtidigt där SPI2_MISO/USART3_RTS är på samma pinne (på STM32F100RBT6).
Edit: tog bort (alternate function) eftersom det inte var det jag menade.
I det senare fallet så är det väl bara låta bli att sätta RTSE/CTSE i USARTx->CR3, dvs inte slå på hårdvaru-flödes-kontroll.
Jag har t.ex. använt PA11/USART1_CTS som utgång samtidigt med USART1 och SPI2. USART3 och SPI2 samtidigt där SPI2_MISO/USART3_RTS är på samma pinne (på STM32F100RBT6).
Edit: tog bort (alternate function) eftersom det inte var det jag menade.
Re: STM32F103 remap av pinnar?
Tackar så mycket för svaren!
Jag vill bara använda pinnarna som vanlig IO, så då är det bara å inte slå på HW flow controll. De va enkelt.
Tack igen!
Jag vill bara använda pinnarna som vanlig IO, så då är det bara å inte slå på HW flow controll. De va enkelt.

Tack igen!