Категории:

  • Программирование


  • Изобразительное искусство


  • Программирование встраиваемых систем


  • Компьютерная графика


  • WEB Разработка


  • Музыка


  • Инженерия


  • iVARIOUS


  • Mobil App


  • STM32. USART

    USART возможно самый простой способ передачи данных, с программной и физической точки зрения. Передатчики USART также еще ассоциируют с физическим уровнем RS-232. Принцип его действия прост : высокий уровень на линии передачи соответствует молчанию, передача начинается с перехода линии в логический ноль, это называется стартовым битом, после него принимающая система понимает что следующие логические уровни это уже - данные. Стоповый бит - последний бит соответствующий логической единице, сообщает что передача данных, отдельного байта, или просто какой-нибудь порции данных прекращена. UART передает данные не только байтами ( порциями в 8 бит ) , но есть и стандарты 5, 6, 7, и 9 бит. Все порции данных обрамлены стартовым и стоповым битами. Таким образом, для передачи/приема данных достаточно одной линии и общего нуля. Для корректной работы передатчика и приемника нужно согласовывать промежутки времени - одинаковую рабочую частоту .
    Скорость передачи данных микроконтроллере STM32f407VG задается значением в регистре USART2_BRR, и вычисляется по формуле : частота микроконтроллера деленная на желаемую скорость передачи данных и деленная на 16.
    Полученное число обычно не является целым, его остаток умножают на 16, и логически прибавляют его цифру к целому ( не путать с математическим).
    Например: если целое 0х68 , а остаток 3, значение занесенное в регистр USART2_BRR = 0х683.
    Обычно при изучении интерфейса USART, наибольшую трудность приносит понимание расчета значения для регистра скорости передачи USART2_BRR.

    Адреса регистров USART:
    //..........USART1......
    #define RCC_UART1 *((uint32_t*)0x40023844)//RCC=0x10;
    #define USART1_SR *((uint32_t*)0x40011000)
    #define USART1_DR *((uint32_t*)0x40011004)
    #define USART1_BRR *((uint32_t*)0x40011008)
    #define USART1_CR1 *((uint32_t*)0x4001100C)
    #define USART1_CR2 *((uint32_t*)0x40011010)
    #define USART1_CR3 *((uint32_t*)0x40011014)
    #define USART1_GTPR *((uint32_t*)0x40011018)


    //.......USART2... #define RCC_UART2 *((uint32_t*)0x40023840)//RCC=0x20000;
    #define USART2_SR *((uint32_t*)0x40004400)
    #define USART2_DR *((uint32_t*)0x40004404)
    #define USART2_BRR *((uint32_t*)0x40004408)
    #define USART2_CR1 *((uint32_t*)0x4000440C)
    #define USART2_CR2 *((uint32_t*)0x40004410)
    #define USART2_CR3 *((uint32_t*)0x40004414)
    #define USART2_GTPR *((uint32_t*)0x40004418)


    //...........USART3......
    #define RCC_UART3 *((uint32_t*)0x40023840)//RCC=0x40000;
    #define USART3_SR *((uint32_t*)0x40004800)
    #define USART3_DR *((uint32_t*)0x40004804)
    #define USART3_BRR *((uint32_t*)0x40004808)
    #define USART3_CR1 *((uint32_t*)0x4000480C)
    #define USART3_CR2 *((uint32_t*)0x40004810)
    #define USART3_CR3 *((uint32_t*)0x40004814)
    #define USART3_GTPR *((uint32_t*)0x40004818)


    Читайте больше в категории: Программирование встраиваемых систем

    2016-03-28 19:12:47



    Другие статьи:

    2D. Рисование реалистичной воды

    HTML. Создаем меню

    Android. Button

    Java. Ввод данных с клавиатуры

    Линии и пятна

    Середнянський замок. 3D реконструкція

    Maya. Сглаживание Smooth и по нормалям

    Android. Service. Службы

    Java. Классы и Обьекты

    JavaScript. Создание простой Галереи изображений