voidUSART_ITConfig(USART_TypeDef*USARTx,uint16_tUSART_IT,FunctionalStateNewState)函数参数列表中,USART的有效范围为:#defineIS_USART_ALL_PERIPH(PERIPH)(((PERIPH)==USART1)||\((PERIPH)==USART2)||\((PERIPH)==USART3)||\((PERIPH)==UART4)||\((PERIPH)==UART5))USART_IT的有效范围为:#defineIS_USART_CONFIG_IT(IT)(((IT)==USART_IT_PE
作者博客主页作者:Eterlove一笔一画,记录我的学习生活!站在巨人的肩上StandingonShouldersofGiants!该文章为原创,转载请注明出处和作者声明:这段时间较忙,相关知识点分析讲解后面抽时间补上。 谈谈我为什么想写这篇文章?---->嵌入式软件面试的那点事,重点难点一网打尽嵌入式软件面试的那点事,重点难点一网打尽你是怎么接收、发送串口数据的? 这个问题其实比较宽泛,一般经验少的会说使用查询方式,但是查询方式效率是非常低下的,所以如果你只能回答这个,100分的题你只能得个30分。如果你说用中断方式,那么请问你具体是如何处理的?如果你回答说一个字节接收完
作者博客主页作者:Eterlove一笔一画,记录我的学习生活!站在巨人的肩上StandingonShouldersofGiants!该文章为原创,转载请注明出处和作者声明:这段时间较忙,相关知识点分析讲解后面抽时间补上。 谈谈我为什么想写这篇文章?---->嵌入式软件面试的那点事,重点难点一网打尽嵌入式软件面试的那点事,重点难点一网打尽你是怎么接收、发送串口数据的? 这个问题其实比较宽泛,一般经验少的会说使用查询方式,但是查询方式效率是非常低下的,所以如果你只能回答这个,100分的题你只能得个30分。如果你说用中断方式,那么请问你具体是如何处理的?如果你回答说一个字节接收完
目录1、通信接口2、硬件电路3、电平标准4、串口参数及时序5、USART简介 6、USART工作(1)写操作(2)读操作(3)帧头和帧尾的添加和除由电路自动执行(4)硬件数据控制流(5)中断输出控制(USART)(6)波特率发生器 7、USART基本结构 8、数据帧 9、波特率发生器1、通信接口•通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统•通信协议:制定通信的规则,通信双方按照协议规则进行数据收发 异步:需要双方约定一个频率2、硬件电路•简单双向串口通信有两根通信线(发送端TX和接收端RX)•TX与RX要交叉连接•当只需单向的数据传输时,可以只接一根通信线•当电平标准不一致时,
目录1、通信接口2、硬件电路3、电平标准4、串口参数及时序5、USART简介 6、USART工作(1)写操作(2)读操作(3)帧头和帧尾的添加和除由电路自动执行(4)硬件数据控制流(5)中断输出控制(USART)(6)波特率发生器 7、USART基本结构 8、数据帧 9、波特率发生器1、通信接口•通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统•通信协议:制定通信的规则,通信双方按照协议规则进行数据收发 异步:需要双方约定一个频率2、硬件电路•简单双向串口通信有两根通信线(发送端TX和接收端RX)•TX与RX要交叉连接•当只需单向的数据传输时,可以只接一根通信线•当电平标准不一致时,
//源文件voidUartGpioConfig(){ RCC->AHB1ENR|=(1APB1ENR|=(1APB2ENR|= //PD8TXDGPIOD->MODER|=(2OSPEEDR|=(2AFR[1]|=(7PUPDR|=(1MODER|=(2OSPEEDR|=(2AFR[0]|=(7PUPDR|=(1BRR|=(54*1000000+bound/2)/bound; USART3->CR1=0; USART3->CR1|=0CR1|=0CR1|=0CR1|=1CR1|=1TDR=byte; while((USART3->ISR&(1
//源文件voidUartGpioConfig(){ RCC->AHB1ENR|=(1APB1ENR|=(1APB2ENR|= //PD8TXDGPIOD->MODER|=(2OSPEEDR|=(2AFR[1]|=(7PUPDR|=(1MODER|=(2OSPEEDR|=(2AFR[0]|=(7PUPDR|=(1BRR|=(54*1000000+bound/2)/bound; USART3->CR1=0; USART3->CR1|=0CR1|=0CR1|=0CR1|=1CR1|=1TDR=byte; while((USART3->ISR&(1