STM32F0的USART通讯的例子

发布者:breakthrough2最新更新时间:2017-10-25 来源: eefocus关键字: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);// 清除中断标志

}

}


关键字:STM32F0  USART通讯 引用地址:STM32F0的USART通讯的例子

上一篇:STM32之模拟I2C读取加速度传感器
下一篇:STM32的硬件SPI驱动LCD例子

推荐阅读最新更新时间:2024-03-16 15:41

STM32F0(3)EXTI 外部中断配置
// 引脚 PA0 的外部中断配置 void Key_GPIO_Init(void) { // 设置 PA0 口为上拉输入模式 RCC- AHBENR |= RCC_AHBENR_GPIOAEN; // 打开该引脚的GPIO时钟 GPIOA- MODER &= ~GPIO_MODER_MODER0_1; // 设置为输入模式 GPIOA- MODER &= ~GPIO_MODER_MODER0_0; GPIOA- PUPDR &= ~GPIO_PUPDR_PUPDR0_1; //上拉 == 相当于设置初始电平为 1 GPIOA- PUPDR |= GPIO_PUPDR_PUPDR0_0; // 如果设置为下拉的话,初始电平
[单片机]
STM32F0(9)串口初始化
// 只初始化了RX功能,因为之前没有用到Tx功能,所以没有配置 void PM25_UART2_Init(void) // 串口UART2初始化 { RCC- APB1ENR |= RCC_APB1ENR_USART2EN; // 串口时钟使能 RCC- AHBENR |= RCC_AHBENR_GPIOAEN; // 打开串口所对应的GPIO引脚时钟 GPIOA- AFR |= 0x00001000; // 开启复用功能的对应AFIO(对应截图) GPIOA- MODER |= GPIO_MODER_MODER3_1; // 开启GPIO复用模式 GPIOA- MODER &= ~GPIO_MOD
[单片机]
STM32F0 串口接收超时
STM32F030F4上自带的串口硬件接收超时机制,使用很方便下面就来说说。 用于设定超时时间函数 USART_SetReceiverTimeOut( USARTx, USART_ReceiverTimeOut); 其实就是对寄存器USARTx_RTOR 设定一个值。当接收到最后一个字符之后,总线为空闲状态,MCU就开始计时,当计时的时间达到USART_ReceiverTimeOut值,就会置标志位USART_IT_RTO为1。如果使能了中断,则MCU就会产生一个中断。 注意:此寄存器只需要设置一次,而不是每次置位USART_IT_RTO,就再设置一次。当然如果在接收不同的帧时,需要不同的TimeOut值,那就需要更改了。 那
[单片机]
第20章 USART—串口通讯—零死角玩转STM32-F429系列
本章参考资料:《STM32F4xx中文参考手册》USART章节。 学习本章时,配合《STM32F4xx中文参考手册》USART章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分。 特别说明,本书内容是以STM32F42xxx系列控制器资源讲解。 20.1 串口通讯协议简介 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。 在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,
[单片机]
第20章 <font color='red'>USART</font>—串口<font color='red'>通讯</font>—零死角玩转STM32-F429系列
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved