2015.8.3stm32f4串口调试记录

由于最近要做一个IRIGB的转码模块,需要从GPS模块获取时间数据,处理器和GPS采用串口通信的方式。由于串口通信用得太多,就直接上手将串口的配置代码写完,然后试着用串口发送一个字符‘2‘,然后通过PC上的串口调试助手,可以看到我收到的是一个’向上的箭头‘。于是问题来了,对于我这个单片机玩了都不玩的人来说,这似乎有点弱智,可是我调了一下午也没发现什么端倪,因为,这个代码确实是比较简单。最后没有办法只有用百度去搜搜类似的问题,百度上答案无非都是在说是时钟配置问题,但是这一点我似乎不太相信。因为之前我也遇到过类似时钟配置的问题,但是后来我都改过来了,所以时钟配置应该是没什么问题的。我还用个LED测试了一下,让他每隔一秒闪烁一下,结果显示正常。之前时钟出问题是由于板载时钟是8MHz,但是在文件system_stm32f4xx.h中却将PLL_M设置成了25,改过来之后就好了。

/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
#define PLL_M      8
#define PLL_N      336

抱着对时钟配置正确的想法,我又折腾了很久,还是没有丝毫进展,于是又去仔细查看别人的回答,偶然看到一个人的回答,他说时钟配置除了以上位置要改之外,还有一处要设置,我按照他的方法设置之后,测试结果正确。这一处代码就在stm32f4xx.h中:

#if !defined  (HSE_VALUE)
  #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */

  原来里面的是((uint32_t)25000000),这里由于板载时钟是8MHz,所以要将其改为8000000

时间: 2024-10-25 21:22:07

2015.8.3stm32f4串口调试记录的相关文章

Qt5自带串口调试 --使用signal接收数据,自动侦测端口列表

Qt5自带串口初步用一下感觉还不错. 调试记录 .pro文件增加 QT += serialport .h文件增加 #include <QtSerialPort/QSerialPort> #include <QtSerialPort/QSerialPortInfo> private slots: void my_readuart();//串口接收数据槽函数 private: QSerialPort *my_serialport; .cpp文件 构造函数内     foreach (c

VELT-0.1.5开发: gdb串口调试内核时信息丢失的问题

快乐虾 http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651) 欢迎转载,但请保留作者信息 本文仅适用于vs2013 + velt-0.1.5 VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发.利用这个插件,将可以在visual studio的IDE中进行Linux应用程序的开发(包括编译和调试),也可

Android KitKat 4.4 Wifi移植之AP模式与网络共享功能调试记录

Tethering技术在移动平台上已经运用的越来越广泛了,它可以把移动设备当做一个接入点,其它的设备可以通过Wi-Fi,USB或是Bluetooth等方式连接到此移动设备.在Android中可以将Wifi设为AP模式作为WLAN接入点,从而与其他设备共享Android的互联网连接.Android成为接入点后,就无法通过WLAN连接使用Android的应用程序访问互联网,但可以通过其他方式如以太网或移动网络访问互联网.此时以太网或移动网络在网络共享(Tethering)中是作为upstream的角

2015 Xcode7 真机调试(开发者)以及P12配置

2015 Xcode7 真机调试(开发者)以及P12配置 关于真机方面,首要的就是真机调试,因为一个程序的开发是肯定离不开真机调试的,在Xcode7之前想要进行真机调试需要加入开发者计划,需要进行证书的配置,但Xcode7之后想要进行真机调试则非常简单,不需要配置证书就可以直接进行真机调试,但是不加入开发者计划的真机调试有很高的局限性,例如不能进行无缝调试,要修复错误,不能打包等等 开发者账号的分类 个人账号($99)==688 功能:可以真机调试, 打包测试, 程序发布 优点:申请速度快, 给

2440裸机串口调试 while(!(rUTRSTAT0 &amp; 0x2));问题

前两天写RTC中断 使用串口输出 发现程序会出现while(!(rUTRSTAT0 & 0x2));出不来的情况,但是中断是正常运作的 解决方法: main函数增加: U32 mpll_val = 0,consoleNum; Port_Init(); //定义在2440lib.c mpll_val = (92<<12)|(1<<4)|(1); //init FCLK=400M, ChangeMPllValue((mpll_val>>12)&0xff, (

基于Modbus的C#串口调试开发

说明:本文主要研究的是使用C# WinForm开发的串口调试软件(其中包含Modbus协议相关操作).Modbus相关协议可以查阅百度文库等,可参考: <http://wenku.baidu.com/link?url=J-QZeQVLfvfZh7_lh8Qf0MdwANZuVjEoTqox6zJYrSnKyfgES2RTb_bjC5ZTn8-xgsuUAyiELRYVA3-3FBkBGywWhQ9YGoavJOzwB0IxTyK >. (1)先测试串口设置,发送和接收数据. (2)发送modb

keil中的串口调试:

keil中串口的虚拟调试信息在通过View-serial windows-#usart1/2/3/4/debug(printf)可以看到.当然也可以通过虚拟串口VSPD+串口调试助手在外部实现,方法如下: 虚拟 串口使用:步骤 1 下载虚拟串口软件,虚拟2个连接的串口COMA/COMB,这两个串口与PC机的真实物理串口没关系.两边的设置相同 2 打开串口通讯助手,将A分配给串口通讯助手,则B就分配给下面的COMx 2 在MDK中输入命令行或者将下面的做成debug.ini文件加载 MODE CO

ORACLE 11G 触发器调试记录Error: PLS-00201: identifier&#39;SYS.DBMS_SYSTEM&#39; must be declared

1,触发器内容如下 CREATE OR REPLACE TRIGGER"LOGON_DENIED_TO_ALERT" AFTER servererror ON DATABASE DECLARE message   VARCHAR2(168); ip        VARCHAR2(15); v_os_user VARCHAR2(80); v_module  VARCHAR2(50); v_action  VARCHAR2(50); v_pid     VARCHAR2(10); v_s

[STM32F10x] 使用printf函数进行串口调试问题

硬件:STM32F103C8T6 平台:Keil ARM-MDk V5.11 利用printf函数通过串口(USART)进行调试时遇到的一个问题: printf("Hello, Mini-M3"); 本意是想输出"Hello, Mini-M3",但是通过串口调试助手,得到的输出是"ello, Mini-M3",也就是第一个数据没有接收到,而且这种情况只会在初始化USART后第一次 发送数据时出现. USART发送数据的代码如下: int fput