关于STM32H743串口的一些学习

关于STM32H743串口的一些学习基于正点原子。USART_RX_BUF[]会记录串口接收的数据USART_RX_STA第15位为1时完成一次接收,等待置零,开始下一次接收第0-13位为接收的有效数据的个数,len=USART_RX_STA&0x3fff可得到数据的长度。USART_ISR第5位置一时,串口接收到数据,通过读USART_RDR可以将该位清零。…

大家好,欢迎来到IT知识分享网。

基于正点原子。现欲实现多串口通信的功能。现在需要对其进行输入输出数据。正慢慢学习。

 

USART_RX_BUF[]  会记录串口接收的数据
USART_RX_STA   第15位为1时完成一次接收,等待置零,开始下一次接收
                               第14位为1时,收到了回车符号的0X0D
                             (回车符号由 2 个字节组成:0X0D 和 0X0A
                               第0-13位为接收的有效数据的个数,len=USART_RX_STA&0x3fff可得
                               到数据的长度。
USART_RX_STA 为自己设计的寄存器。可以更改为其它串口使用。
USARTx_ISR 第5位变1的时侯,串口接收到数据,通过读 USART_RDR 可以 将该位清零。


                       第6位变1的时侯,串口发送完成数据。该位也有两种清零方法                                                                                        1、写USART_TDR。  
                                                      2、向 USART_ICR 的 TCCF 位写 1。
USARTx_RDR   接收数据寄存器,正点原子库函数已经将数据存入USART_RX_BUF[] 
USARTx_TDR   
发送数据寄存器 将数据发送给它,它会将数据发送给串口
例程中将输入的数据发回的方法。
                        for(t=0;t<len;t++)
            {

                USART1->TDR=USART_RX_BUF[t];
             
                while((USART1->ISR&0X40)==0);//确认发送结束
            }
        
     
配置串口的一般步骤
关于STM32H743串口的一些学习

 H743中配置了初始化串口一(USB串口,但似乎rs232也是一样的配置方法)的例程:

RCC->AHB4ENR|=1<<0; //
使能
PORTA
口时钟,0-10位对应A-K时钟
RCC->APB2ENR|=1<<4; //
使能串口
1
时钟,APB1LENR第17位18位对应USART2和3
GPIO_Set(GPIOA,PIN9|PIN10,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_MID
,GPIO_PUPD_PU);//PA9,PA10,
复用功能
,
上拉输出
USART2的PIN口为2和3,USART3的为10和11
GPIO_AF_Set(GPIOA,9,7); //PA9,AF7
GPIO_AF_Set(GPIOA,10,7);//PA10,AF7
//波特率设置
USART1->BRR=temp; //波特率设置
@OVER8=0
USART1->CR1=0; //清零
CR1
寄存器
USART1->CR1|=0<<28; //设置
M1=0
USART1->CR1|=0<<12; //设置
M0=0&M1=0,
选择
8
位字长
USART1->CR1|=0<<15; //设置
OVER8=0,16
倍过采样
USART1->CR1|=1<<3; //串口发送使能
#if EN_USART1_RX //如果使能了接收
//
使能接收中断
USART1->CR1|=1<<2; //串口接收使能
USART1->CR1|=1<<5; //
接收缓冲区非空中断使能
MY_NVIC_Init(3,3,USART1_IRQn,2);//

2
,最低优先级
#endif
USART1->CR1|=1<<0; //串口使能
在这里
RCC->AHB4ENR为时钟寄存器。第0-10位使能GPIO A-K的外设时钟。
RCC->APB2ENR 第4位使能USART1时钟。RCC->APB1LENR 第17位第18位分别使能USART2和USART3
现在有一个疑问,这里的GPIO配置为:

GPIO_Set(GPIOA,PIN9|PIN10,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_MID
,GPIO_PUPD_PU);//PA9,PA10,
复用功能
,
上拉输出
这里PIN9和PIN10都设置为输出了吗。
若参考F1的例程
关于STM32H743串口的一些学习
它是将PIN9设置为输出PIN10设置为浮空输入。
可能是复用功能的关系,还需继续学习。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/10869.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信