战舰V3的USERT3初始化问题,新手没有多少金币

2019-08-22 16:27发布

void chuankou_init(void){
        RCC->APB2ENR |=(1<<3);//使能PB
        RCC->APB1ENR |=(1<<18);//使能USART3
        //使用PB10  PB11
        AFIO->MAPR &=~(0x3<<4);
       
        //PB10推挽输出
        GPIOB->CRH &=~(0xF<<8);
        GPIOB->CRH |=(0xB<<8);
       
        //PB11上拉输入
        GPIOB->CRH &=~(0xF<<12);
        GPIOB->CRH |=(0x8<<12);
        GPIOB->ODR |=(1<<11);
       
       //usart3复位
        RCC->APB1RSTR |=(1<<18);
        RCC->APB1RSTR &=~(1<<18);
       


        //波特率
        USART3->BRR =(36*1000000)/(9600);
       
        //数据格式
        USART3->CR1 &=~(1<<12);
        USART3->CR2 &=~(0x3<<12);//
        USART3->CR1 |=(0x3<<2);//

        //串口使能
        USART3->CR1 |=(1<<13);
       
}

//发送数据
void usart_send_data(u8 data){
        while(!(USART3->SR & (1<<6))){}
        USART3->DR =data;
}
数据总是发不出去,麻烦帮忙看下错在哪,K1已经拨到RS232了,跳线帽拔掉了,与串口助手通信总是没有数据

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
liling512
1楼-- · 2019-08-23 04:33
为啥不用库 麻烦的要死
rysefgf
2楼-- · 2019-08-23 07:52
liling512 发表于 2017-4-4 20:26
为啥不用库 麻烦的要死

有库函数的实例,但是我需要用寄存器来写
rysefgf
3楼-- · 2019-08-23 08:41
whyviking 发表于 2017-4-4 17:45
你设置的多少波特率?感觉你波特率设置有问题

是9600啊
rysefgf
4楼-- · 2019-08-23 11:34
 精彩回答 2  元偷偷看……
rysefgf
5楼-- · 2019-08-23 11:59
正点原子 发表于 2017-4-4 12:38
论坛搜索,早有答案。
开发板光盘扩展例程也有。GPS,蓝牙,都是用的串口3.
真是服了你们这些不搜索就提问 ...

我想知道我的代码错在哪了?是不是必须开中断?我参考了扩展例程的代码,实在看不出自己错哪了

一周热门 更多>