打印

串口发送老是乱码?

[复制链接]
198|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
道子|  楼主 | 2019-11-24 15:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "stm32f10x.h"void init(){        uint8_t temp=0;        RCC->CR |= RCC_CR_HSEON        ;        while(!(RCC->CR>>17));        FLASH->ACR|=0x32;        RCC->CFGR |= RCC_CFGR_PPRE1_DIV2 ;        RCC->CFGR |= RCC_CFGR_PLLMULL9;          RCC->CFGR |= RCC_CFGR_PLLSRC;        RCC->CR |= RCC_CR_PLLON;        while(!(RCC->CR>>25)) ;        RCC->CFGR|=0x00000002;    //PLL作为系统时钟        if(temp!=0x02)            //等待PLL作为系统时钟设置成功        {                temp=RCC->CFGR>>2;                temp&=0x03;        }        RCC->APB2ENR |= (1<<14);        //使能uart1时钟        RCC->APB2ENR |=        (1<<2);                 //使能PTA时钟        GPIOA->CRH =0;        GPIOA->CRH |=(GPIO_CRH_MODE9+GPIO_CRH_CNF9_1+GPIO_CRH_CNF10_1);//A9推挽输出,A10上下拉输入        RCC->APB2RSTR|=1<<14;   //复位串口1        RCC->APB2RSTR&=~(1<<14);//停止复位        USART1->BRR |= 0X1D6;          //波特率//        USART1->CR1=0;        USART1->CR1 |= (1<<13);                //          USART模块使能//        USART1->DR = 2;//        while(!(USART1->SR>>7));//        USART1->CR1 |= 0X0C;                                        }int main(){        init();        while(1)        {                                 //USART1->DR        = 0;                USART1->DR        = 0x03;                //装载数据                USART1->CR1 |= 0X0C;          //  开始发送                while(!(USART1->SR>>7));        //等待移入寄存器                while(!(USART1->SR>>6));        //等待发送完成                USART1->SR&=~(1<<6);                 //清除标志位        }}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

443

主题

448

帖子

0

粉丝