Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Программная инженерия > Микроконтроллеры, робототехника, схемотехника, 3D принтеры
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2018, 09:46   #1
Umar95
Пользователь
 
Регистрация: 21.02.2016
Сообщений: 21
По умолчанию Stm32f1 usart3 как принять строку - ARM, Cortex, STM32 микроконтроллер

через cp2102 Bridge Controller (USB to UART), обмен строками происходит, а вот место cp2102 подключаю sim800 ответ не получаю
Код:
#include "stm32f10x.h" 
 
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
 
    unsigned char Buffer[512];  //  Буфер
    int a,b;
 
void init()
{
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
 
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;      //  Tx
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
 
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;  //  Rx
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    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_Rx | USART_Mode_Tx;
 
  USART_Init(USART3, &USART_InitStructure);
  USART_Cmd(USART3, ENABLE);
}
 
void delay(unsigned long p)
{
    while(p>0){p--;}
}
 
void send_Uart(USART_TypeDef* USARTx, unsigned char c)
{
    while(USART_GetFlagStatus(USARTx, USART_FLAG_TXE)== RESET){}
        USART_SendData(USARTx, c);
}
 
unsigned char getch_Uart(USART_TypeDef* USARTx)
{
    while(USART_GetFlagStatus(USARTx,USART_FLAG_RXNE) == RESET){}
    return USART_ReceiveData(USARTx);
}
 
//  Отправка строки в USTR
void send_Uart_str(USART_TypeDef* USARTx, unsigned char *s)
{
  while (*s != 0) 
    send_Uart(USARTx, *s++);
}
 
//  читаем текстовую строку с UART, до ввода <enter>. Максимальная длина строки 512Байт
void read_str_uart(USART_TypeDef* USARTx,unsigned char* s)
{
    unsigned char temp;
    unsigned int index=0;
    while(index<512)
    {
        temp=getch_Uart(USARTx);
        if(temp!=13)
        {
            *s++=temp;
        }
        else
        {
            index=512;
        }
        index++;
    }
}
 
int main(void)
{
 
    init();
        
    send_Uart_str(USART3, "AT");
        read_str_uart(USART3, Buffer);
    
}
Umar95 вне форума Ответить с цитированием
Старый 04.03.2018, 23:12   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Че че ?? а по конкретнее??
что отправляете?? мож терминатор забыли вставить??
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
планшет WonderMedia WM8850, ARM Cortex-A9 runbe Помощь студентам 3 19.01.2014 23:56
asm и arm(stm32) evilboy Помощь студентам 0 03.06.2012 20:42
Перегрузка оператора (принять номер строки и строку char) delias Общие вопросы C/C++ 0 06.01.2010 15:40
Как принять GET запрос eldar Работа с сетью в Delphi 2 11.08.2008 00:19
Как принять сообщение (SendMessage) Crazyman Win Api 4 20.02.2008 04:42