STM32
直播中

贾虎世

7年用户 1662经验值
私信 关注
[问答]

usart串口调试工具怎么用?

usart串口调试工具怎么用?

回帖(1)

邹昀

2021-11-26 15:27:42
今天笔者介绍stm32初学者必会的工具 usart的串口设备。
usart很重要,可以传输数据,可以检查代码的错误位置,查看输出数据。
下图就是笔者的蓝牙串口





下面来介绍串口使用的步骤

1. 首先是接线–笔者这里使用的是stm32f103rct6

[tr]USART1_RXTXD[/tr]
USART1_TXRXD
串口用到是USART1 —PA9 、 PA10;
芯片与串口设备交错相连
注意:串口正负极不要接反。







2. 然后就是编码
1.打开GPIOA 、USART1
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_USART1EN;


2.配置对应的GPIOA引脚,我们这里用的是PA9、PA10;
这里4:浮空输入。 b:复位推挽输出


GPIOA->CRH = (GPIOA->CRH & 0xfffff000) | 0x4b0;


3. USART1配置
USART1->BRR = SystemCoreClock / 115200;//此为波特率,要看您的串口设备
USART1->CR1 = USART_CR1_TE | USART_CR1_UE | USART_CR1_RE;


注意:如果是APB1ENR 的波特率要改为:SystemCoreClock/2/115200;


4. 输出
USART1->DR = '1';


直接上代码
下面展示一些 内联代码片。


#include
#include
#include
#include


int fputc(int ch, FILE *fp)
{
        if (ch == 'n')
                fputc('r', fp);
       
        USART1->DR = ch;
        while ((USART1->SR & USART_SR_TXE) == 0);//等待发送完毕
        return ch;
}


int main(void)
{
        RCC->APB2ENR |= RCC_APB2ENR_IOPAEN |  RCC_APB2ENR_USART1EN;
       
        GPIOA->CRH = (GPIOA->CRH & 0xfffff00f) | 0x4b0;
       
        USART1->BRR = SystemCoreClock / 115200;
        USART1->CR1 = USART_CR1_TE | USART_CR1_UE| USART_CR1_RE;


        while (1)
        {
                printf("hello world!n");
                for(int i = 0 ; i < 20000; i++);
        }
}












注意:如果是蓝牙串口输出时一定要注意输出的速度,如果太快了 将会导致电脑蓝牙崩溃,笔者崩了好多次,相关经验在博客中写出了
如果有什么问题尽管来博客私信: 点击.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分