使用开发板的串口通讯例程修改了一个自己板子STM32F407的UART4,发现两边收发的数据但是错误的;
刚开始怀疑是我的USB转串口模块坏了,但在模块上RX脚直接接TX脚,数据发送和接收是正常,说明USB转串口模式是没坏的;然后就怀疑UART4是不是比较特殊,代码需要其他的特殊配置,在自己板子RX脚也是直接接TX脚,进入调试状态查看收发数据,发现也是正常的,也查看了手册和网上资料并没有提到UART4的特殊性,说明我的代码配置是没问题。
最后去看了开发板与我自己板子的电路图,发现原来是板子的晶振频率不对,我的板子晶振频率是8MHz,,开发板晶振频率是25MHz;
使用标准库:
在 stm32f4xx.h 中默认是25M的,所以修改了一下该文件(去掉文件的只读权限后可修改):
1 #if !defined (HSE_VALUE)
2 #define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */ //原来是25000000
3
4 #endif /* HSE_VALUE */
---------------------
使用HAL库:
在 stm32f4xx_hal_conf.h 中默认是25M的,所以修改了一下该文件
#if !defined (HSE_VALUE)
#define HSE_VALUE (8000000U) /*!< Value of the External oscillator in Hz 默认是25MHz*/
#endif /* HSE_VALUE */
关键字:STM32F407 串口调试 收发
引用地址:
STM32F407 串口调试总结
推荐阅读最新更新时间:2024-11-11 14:01
STM32CubeMX 配置STM32F407 实现HAL库延时微妙方案
先说一下为什么写这篇博客。 不知道大家有没有遇到过这种情况,当你在移植别人的程序的时候,尤其是移植STM32的程序,从标准库移植到HAL库的时候,总是无奈延时微妙函数在HAL库中找不到,delay_us(u8 us); 很多次我都是用毫秒延时代替了, 但是,这样会使得程序的效率大大降低,所以通过参考别人的资料,通过定时器写了延时us函数,延时还是很准确的 1、我所使用的单片机型号及开发环境 **PS**: emmmmm… (这里并不是打广告,只是我个人使用的这个开发板,其他任何的开发板,只要主控芯片一样均可以) 开发环境如图,我是用的Cube+IAR, Keil5也可以的,都一样。 2、使用Cube配置定时器TIM
[单片机]
stm32f407时钟配置方法例程解析
这里我们写一个RCC配置函数来说明各函数的用途,其中HSE = 8MHz。 /** * @说明 配置STM32F407的时钟系统 * @参数 无 * @返回 无 * @说明 void Clock_Config(void) 按如下表格配置时钟 * *================================================================== * Supported STM32F4xx device revision | Rev A *-----------------------------------------------------------
[单片机]
坚固型 ±60V RS485 收发器增强了 PROFIBUS-DP 网络
2016 年4月11 日,凌力尔特公司 (Linear Technology Corporation) 推出异常坚固和可耐受高电压的 RS485 收发器 LTC2876 和 LTC2877,它们面向 PROFIBUS-DP (分散型外设) 主控和受控设备。与任何现场总线一样,PROFIBUS-DP 系统容易遭遇安装串线故障、接地电压故障、或浪涌,这会引发超过典型收发器之绝对最大额定值的灾难性过压情况。不管处于发送、接收、待机还是断电状态,LTC2876 和 LTC2877 都能在其总线引脚上耐受 60V,从而消除了由于传输线路故障所引起的常见损坏。 LTC2876 和 LTC2877 提供了多种保护等级,因而使其成为诸多 PRO
[电源管理]
stm32f407 usb cdc设备无法启动问题
最新要做一个项目,要求基于STM32F407实现USB CDC设备,首先想到的就是直接用STM32CUBEMX工具来生成,OK,话不多说,直接上过程: RCC配置: Sys配置 USB_OTG_FS配置: USB_DEVICE配置: 时钟配置 然后生成代码并编译,烧录后发现设置有点问题: 出现上面的问题显然是不能正常命使用的,曾以为是驱动的问题,重新去官网下载最新驱动并安装后,结果还是一样,换个开发板工程重新置,也是一样的结果!由是定位为是程序问题,以为是HAL库版本问题,试过用不同的HAL库版本重新生成代码(1.21.0/1.23.0/1.24.0)最后结果还是一样!!排除了库版本的问题,重新回
[单片机]
关于51单片机使用printf进行串口调试的方法
//关于51单片机使用printf进行串口调试 //重定义代码,可以使用printf给串口发送数据 char putchar(char c) { ES=0;//关串口中断 TI=0;//清除标志位 SBUF=c;//发送数据 while(!TI);//等待数据发送 TI=0;//清除标致位 ES=1;//开串口中断 return c; }
[单片机]
STM32F407使用MFRC522射频卡调试及程序移植成功
本学期感测技术选修课需要做一个作品出来,用到了MFRC522射频卡模块,经历一个星期的调试,终于可以正常使用并寻卡成功了了。 成功的把C51的程序移植到了STM32上面。 现在分享一下调试过程 1、操作环境 我所使用的是STM32F407的开发板,使用STM32CubeMX配置初始代码。 MFRC522使用软件模拟SPI通信 2、关于引脚的配置 淘宝买来的模块,店家都会送资料 ,也可以点下面连接保存至网盘 链接:http://pan.baidu.com/s/1boMyMlx 1、SPI通信引脚 NSS(SDA) --------- 片选信号 SCK --------- 时钟信号 MO
[单片机]
意法半导体NFC收发器芯片助力上海斯图曼
中国,2015年4月24日 横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)宣布,其NFC收发器芯片被上海斯图曼通信技术有限公司用于设计新一代NFC/RFID UART 模块,斯图曼公司是NFC和蓝牙市场知名的协议栈供应商。 新模块兼备紧凑的外观尺寸 、稳定的性能和优化的功耗,有助于设备厂商开发射频阅读器系统,在医疗保健装置、工业自动化设备、家电和消费电子产品中,用于交换配对数据和验证识别用户身份。 NFCMod+S68模块集成意法半导体的ST95HF NFC/RFID收发器芯片、STM32F4微控制器和上海斯图曼的N
[网络通信]
ADI推出高动态范围RF收发器,适用于各种商业和防务应用
ADI宣布推出具有极高动态范围的新系列RF收发器的首款产品,该新系列RF收发器适用于各种商业和防务应用。这款高性能ADRV9002 RF收发器非常适用于关键任务通信应用(如急救员无线电、专用长期演进(LTE)网络和卫星通信)。在这些应用中,尺寸、重量和功率都是关键的设计考虑因素。RF收发器是ADI屡获殊荣的RadioVerse™设计和生态系统的新产品。 ADI公司无线通信事业部副总裁Joe Barry表示:“关键任务通信网络对确保我们的安全至关重要。 随着无线电频谱的变得更加拥挤,这些通信网络辨识复杂信号的难度也相应提高。ADRV9002 RF收发器能够正确地解码严重拥挤频谱中的信号。这有助于客户开发功率和性能可根据各种
[模拟电子]