访问电脑版页面

导航:老古开发网手机版STM32单片机STM32单片机的USART

STM32F0的USART通讯的例子

导读:前言:正文:所有USART设置都设置了1,时钟,enable2,IO配置,AF,PP,3,在while里循环发送0x55我在示波器里头看到了初始都是高电平,然后一低一高一低一高,重复10次,后来孔工给我看手册,告诉我说,串口通信是有
关键字:
stm32f0,usart通讯,

前言:

正文:

所有USART设置都设置了

1,时钟,enable

2,IO配置,AF,PP,

3,在while里循环发送0x55

我在示波器里头看到了初始都是高电平,然后一低一高一低一高,重复10次,后来孔工给我看手册,告诉我说,串口通信是有个起始位是低,有个终值位是高,中间是8个位,如果1就是高,0,就是低,我一看,0x55不是0101 0101吗,后来知道串口通信是低位开始发,所以是10101010,这10位,说的通了

如果示波器都显示出101010时,说明发送是成功的,唯一的错误就要找,TXD是不是和RXD接反了

问题2,使用中断去处理接收的RXD信号时,失败,一直蜂鸣器长响,主要设置原因:

IO口设置,

1,AF推挽,2,PP,3,UP,关键是3,不能是nopull,一定要是UP,所以以后都是UP

// 中断设置

NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPriority = 2;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

// 接收中断

USART_ClearITPendingBit(USART2,USART_IT_RXNE); //清除接收中断标志

USART_ITConfig(USART2,USART_IT_RXNE,ENABLE); //接收中断使能

void USART2_IRQHandler(void){

if( USART_GetITStatus( USART2, USART_IT_RXNE ) == SET )

{

LCD_Clear(RED);

LCD_Clear(WHITE);

USART_ReceiveData(USART2);

USART_ClearITPendingBit(USART2,USART_IT_RXNE);// 清除中断标志

}

}


来源:互联网   作者:karen  2018/11/29 17:00:01
栏目: [ STM32单片机的USART]

相关阅读

STM32 USART串口DMA接收和发送模式

如何采用STM32单片机串口接收数据

STM32F407的UART串口初始化

STM32f103 双串口配置和中断

STM32单片机串口通讯故障排除处理过程

STM32单片机串口的定义及应用方法

STM32F4 USART配置

基于STM32单片机发送字符串的函数

STM32单片机串口波特率的计算方法解析

STM32单片机重映射USART设计

STM32单片机UART发送配置的步骤及方法

如何利用STM32单片机串口发送字符串

如何在STM32串口通信程序中使用printf发送数据

基于STM32单片机的串口使用解析

基于STM32F4单片机USART寄存器控制的设计

什么是串口通信?基于STM32的printf打印输出

关于STM32串口通信使用printf发送数据的配置方法

STM32单片机串口DMA解析

基于STM32的串口DMA发送

基于STM32中调试与串口之间的信息传输