问题:

在虚拟串口的窗口不显示数据或者乱码

错误原因:

不显示:标准库默认使用的外部晶振,而在protues中我并未连接外部晶振

乱码:频率错了

解决方案:

1.配置内部时钟

2.根据自己的配置修改仿真的频率

1.配置内部时钟代码

void HSI_SetSysClock(uint32_t pllmul)
{
__IO uint32_t HSIStartUpStatus = 0;// 把 RCC 外设初始化成复位状态
RCC_DeInit();//使能 HSI
RCC_HSICmd(ENABLE);
// 等待 HSI 就绪
HSIStartUpStatus = RCC->CR & RCC_CR_HSIRDY;
// 只有 HSI 就绪之后则继续往下执行
if (HSIStartUpStatus == RCC_CR_HSIRDY) {
//-------------------------------------------------------------//
// 这两句是操作 FLASH 闪存用到的,如果不操作 FLASH,这两个注释掉也没影响
// 使能 FLASH 预存取缓冲区
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);// SYSCLK 周期与闪存访问时间的比例设置,这里统一设置成 2
// 设置成 2 的时候,SYSCLK 低于 48M 也可以工作,如果设置成 0 或者 1 的时候,
// 如果配置的 SYSCLK 超出了范围的话,则会进入硬件错误,程序就死了
// 0:0 < SYSCLK <= 24M
// 1:24< SYSCLK <= 48M
// 2:48< SYSCLK <= 72M
FLASH_SetLatency(FLASH_Latency_2);
//------------------------------------------------------------//// AHB 预分频因子设置为 1 分频,HCLK = SYSCLKRCC_HCLKConfig(RCC_SYSCLK_Div1);// APB2 预分频因子设置为 1 分频,PCLK2 = HCLK
RCC_PCLK2Config(RCC_HCLK_Div1);// APB1 预分频因子设置为 1 分频,PCLK1 = HCLK/2
RCC_PCLK1Config(RCC_HCLK_Div2);//-----------设置各种频率主要就是在这里设置-------------------//
// 设置 PLL 时钟来源为 HSI,设置 PLL 倍频因子
// PLLCLK = 4MHz * pllmul
RCC_PLLConfig(RCC_PLLSource_HSI_Div2, pllmul);
//-- -----------------------------------------------------//// 开启 PLL
RCC_PLLCmd(ENABLE);
// 等待 PLL 稳定
while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) {
}// 当 PLL 稳定之后,把 PLL 时钟切换为系统时钟 SYSCLK
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
// 读取时钟切换状态位,确保 PLLCLK 被选为系统时钟
while (RCC_GetSYSCLKSource() != 0x08) {
}
} else {
// 如果 HSI 开启失败,那么程序就会来到这里,用户可在这里添加出错的代码处理
// 当 HSE 开启失败或者故障的时候,单片机会自动把 HSI 设置为系统时钟,
// HSI 是内部的高速时钟,8MHZ
while (1) {
}
}
}

这段代码是将时钟源配置内部时钟源,并在主函数中引用

int main(void)
{HSI_SetSysClock(RCC_PLLMul_9);usart1_config();delay_ms(200);Usart_SendString(USART1, "usart1");while(1){Usart_SendString(USART1, "hope\r\n");delay_ms(100);}}

2.在这里HSI_SetSysClock(RCC_PLLMul_9); 则设置系统时钟为:4MHZ * 9 = 36MHZ

即:仿真中也需要改为36Mhz

最后,显示正常

注:代码来自《STM32库开发实战指南》

protues仿真stm32 虚拟终端 数据不显示或者乱码 标准库相关推荐

  1. STM32f103+protues仿真(二) OLED显示

    STM32f103+protues仿真(二) OLED显示 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 STM32f103+protues仿真(二) OLED显示 前言 ...

  2. STM32从零到一,从标准库移植到HAL库,UART串口1以DMA模式收发不定长数据代码详解+常见问题 一文解析

    前言 本文的参考资料 感谢提供标准库版本的CSDN同学:这两篇文章至少是我看过的最详细的标准库配置DMA版本.而且代码实测稳定能用. STM32 | DMA配置和使用如此简单(超详细)_...| .. ...

  3. STM32读取SHT3x系列温湿度传感器,标准库和HAL库

    STM32读取SHT3x系列(SHT30.SHT31.SHT35)温湿度传感器的数据并显示在0.96寸OLED屏上. 我下面提供两份代码,一份是标准库使用硬件I2C的,另一份是HAL库使用软件模拟II ...

  4. STM32/APM32 用DMA采集ADC1多通道--标准库

    本文使用的是APM32E103作为示例的, STM32F/E以及APM32F等系列同样适用. 一.ADC及其通道 ADC1:最多16个外部通道,2个内部通道.内部通道分别是温度传感器和参考电压 ①:温 ...

  5. 关于Proteus 8仿真STM32串口通信时显示数据错误或乱码问题解决!

    本人用Proteus 8仿真STM32F401RBT6串口通信时一直不能正确收发数据,写到板子通信数据显示正常,也在csdn查了很多人的解决办法,但都没了正常解决,直到看到某大神说到串口参数,我试着改 ...

  6. protues 仿真stm32的问题

  7. STM32歌唱《孤勇者》(标准库)

    先说一下自己玩两年的单片机的想法吧,玩了大概有两年了,从刚刚开始的不知所措,到现在的成熟,终于还是搞明白了一件事,编程思路,远远比源码更重要,所以,我接下来会给大家完整的介绍,完成此项目的心得,太心酸 ...

  8. STM32f103+protues仿真(一) 点亮led

    STM32f103+protues仿真(一) 点亮led 文章目录 STM32f103+protues仿真(一) 点亮led 前言 一.程序编写 1.led.c 2.led.h 3.main.c 4. ...

  9. mysql阿里云不显示中文乱码_MySQL命令窗口下中文显示乱码的解决过程

    MySQL命令窗口下中文显示乱码的解决过程 在dos客户端输出窗口中查询表中的数据,还有项目部署到服务器上时前台的页面,中文数据都显示成乱码,如下图所示: 这个问题困扰了我一天,后来解决了才发现原来我 ...

  10. 输入电话号码数码管流动显示protues仿真 汇编代码

    输入电话号码数码管流动显示protues仿真 汇编代码 功能:可以通过矩阵键盘按键输入电话号码 一次只能输入一位 按确定键之后可以输入下一位 按下播放键之后数码管流动显示 播放之后不能返回 keil代 ...

最新文章

  1. 菜刀php木马_php网站安全防止各类一句话木马的攻击
  2. Maven(三):将web项目的war包热部署到远程Tomcat服务器
  3. php 利用http上传协议(表单提交上传图片 )
  4. leetcode406. 根据身高重建队列
  5. [css]你有使用过preload、preconnect、prefetch这些属性吗?说说它们都有什么作用?
  6. AngularJS移动端页面input无法输入
  7. JavaWeb 后端 三 之 Response Request 学习笔记
  8. X86 CPU特性之(1)-umip
  9. PATH和CLASSPATH
  10. 斗鱼递交私有化退市文件 与虎牙合并暂无完成时间表
  11. 建立p2p互相连接的社区集群机器人设计(一)
  12. eclipse 项目显示红叉
  13. 如何在旋转屏幕后不再重建Activity
  14. MySQL报错:Data too long for column
  15. python怎么用散点图_Python利用matplotlib绘制散点图的新手教程
  16. 使用QUuid生成唯一码
  17. 软件工程——初识文档
  18. android mail发送邮件(包含163邮箱及qq邮箱,使用mail.jar,activation.jar,additionnal.jar)
  19. Vlan与二层交换机
  20. 如何在小内存主机上搭建博客

热门文章

  1. 软件测试总结——常见的面试问题(一)
  2. Axure|【医药、医疗】药企员工内部培训平台原型
  3. Java高端培训蚂蚁课堂(每特学院)系列项目实战
  4. C++程序设计课程主页-2014级
  5. C语言-内存操作-memory.h头文件
  6. oracle sql练习_最方便的在线SQL学习环境——Oracle Live SQL
  7. java socket监听_Java -socket接口(监听)
  8. python下载手机app视频教程_Python实例教学
  9. C++使用万能头文件报错
  10. ojdbc6不能使用的解决办法