STM32实现串口发送字符和字符串

07-06 1001阅读

效果:(字符串的收发还是有问题,只能实现预置字符串的发送,无法实现输入字符串回响)

STM32实现串口发送字符和字符串

代码:

#include "uart4.h"
void hal_uart4_init()
{
    // GPIOB使能
    RCC->MP_AHB4ENSETR |= (0x1 MP_AHB4ENSETR |= (0x1 APB1RSTCLRR |= (0x1 MODER &= (~(0x3 MODER |= (0x2 MODER &= (~(0x3 MODER |= (0x2 AFRL &= (~(0xF AFRL |= (0x8 AFRL &= (~(0xF AFRL |= (0x6 CR1 &= (~(0x1 CR1 &= (~(0x1 CR1 &= (~(0x1 CR1 &= (~(0x1 CR1 |= (0x1 CR1 |= (0x1 CR1 |= (0x1);
    // UART设置停止位
    USART4->CR2 &= (~(0X3 BRR &= (~(0XFFF));
    USART4->BRR |= (0X22B);
}
// 发送一个字符
void hal_put_char(const char str)
{
    while (!(USART4->ISR & 1 TDR = str;
}
// 发送一个字符串
void hal_put_string(const char *string)
{
    while (*string != '\0')
    {
        hal_put_char(*string++);
    }
}
// 接收一个字符
char hal_get_char()
{
    while (!(USART4->ISR & 1 RDR;
}
// 接受一个字符串
char *hal_get_string()
{
    char buff[128];
    int i = 0;
    while (hal_get_char() != '\n' || hal_get_char() != '\r')
    {
        buff[i++] = hal_get_char();
    }
    buff[i] = '\0';
    return buff;
}
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]