Hallo, ich möchte über USART3 und RS485 Chip Daten senden. mein Code sieht wie folgt aus: int main(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); /* Configure USART2 Tx as alternate function push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Tx; USART_Init(USART3, &USART_InitStructure); USART_Cmd(USART3, ENABLE); USART3_SENDEN; while (1) { USART_SendData(USART3, 'A'); /* Wait until transmit finishes */ while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET); } } Leider funktioniert gar nix, kann mir jemand helfen? ich verwende stm32F100rb und Keil uVision 4
auf die schnelle gesichtet
1 | RCC_APB2PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); |
2 | ^ ^ |
soll wohl heißen
1 | RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); |
mfg
frag mal in der while-schleife das USART_FLAG_TC ab (Transmission Complete)
1 | while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) |
peter müller schrieb: > komisch das der compiler nicht rumgemuckt hat Warum sollte er? Für den ist alles in Ordnung. Man könnte das assert_param macro aus der ST-Lib verwenden, der haut einem dann auf die Finger. mfg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.