一、关于STM32F4在通过串口通信的时候乱码问题
1.刚开始弄得时候,以为和stm32一样配置完串口之后就可以用了,结果后面发现串口打印出来的东西全是乱码。后面发现是STM32F4的固件库中使用的频率是25Mhz,而板子上的外部晶振是8Mhz的。因此需要去固件库的stm32f4xx.h中把HSE_VALUE改成8Mhz就可以了。
2.还有一种问题是,如果使用的是电平转换的问题。要直接从芯片的引脚进行通信的话,可以直接用一个TTL下载器直接相连,如CH340;如果板子上带有MAX3232芯片的电平转换,要通过DB9插口线转RS232电平为TTL电平然后和电脑相连。

#include "stm32f4xx.h"
#include "stdio.h"
#include "uart.h"
void nvic_config(void)
{NVIC_InitTypeDef NVIC_InitStructure;/* NVIC configuration *//* Configure the Priority Group to 2 bits */NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);/* Enable the USARTx Interrupt */NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);
}
/*** @brief   Main program* @param  None* @retval None*/
int main(void)
{nvic_config();uart_init();while(1){printf("hello!welcome to F4..1H.\r\n ");}
}#ifdef  USE_FULL_ASSERT/*** @brief  Reports the name of the source file and the source line number*         where the assert_param error has occurred.* @param  file: pointer to the source file name* @param  line: assert_param error line source number* @retval None*/
void assert_failed(uint8_t* file, uint32_t line)
{ /* User can add his own implementation to report the file name and line number,ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) *//* Infinite loop */while (1){}
}
#endif/*** @}*/ /*** @}*/ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
#include "uart.h"
#include "stdio.h"void uart_init(void)
{USART_InitTypeDef USART_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;/* 开启GPIO_B的时钟 */RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);/* 开启串口1的时钟 */RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_6;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_7;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_USART1);GPIO_PinAFConfig(GPIOB, GPIO_PinSource7, GPIO_AF_USART1);USART_InitStructure.USART_BaudRate   = 115200;USART_InitStructure.USART_WordLength = USART_WordLength_8b;USART_InitStructure.USART_StopBits   = USART_StopBits_1;USART_InitStructure.USART_Parity     = USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode                = USART_Mode_Tx | USART_Mode_Rx;USART_Init(USART1, &USART_InitStructure);/* 使能串口1 */USART_Cmd(USART1, ENABLE);USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
}int fputc(int ch, FILE *f)
{/* Place your implementation of fputc here *//* e.g. write a character to the USART */USART_SendData(USART1, (uint8_t) ch);/* Loop until the end of transmission */while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET){}return ch;
}

关于STM32F407ZGT6的一些知识小结及串口1程序相关推荐

  1. 好程序员分享24个canvas基础知识小结

    好程序员分享24个canvas基础知识小结,非常全面详尽,推荐给大家. 现把canvas的知识点总结如下,以便随时查阅. 1.填充矩形 fillRect(x,y,width,height); 2.绘制 ...

  2. unicode 编码转换漏洞_好程序员Python教程之字符串编码知识小结

    好程序员Python教程之字符串编码知识小结,提及Python字符串,你会想到什么?是ASCII,还是Unicode?他们之间是如何转换的?字符串编码和字符串有什么区别?接下来好程序员Python教程 ...

  3. Android技能树 — 树基础知识小结(一)

    前言: 现在安卓面试,对于数据结构的问题也越来越多了,也经常看到别人发的面试题都是问什么红黑树,二叉树查找等,所以我们虽然不会马上就会各种难的面试题,但起码树的基础知识还是要会的,这样才能去进一步学. ...

  4. python编码转换语句_好程序员Python教程之字符串编码知识小结

    好程序员Python教程之字符串编码知识小结,提及Python字符串,你会想到什么?是ASCII,还是Unicode?他们之间是如何转换的?字符串编码和字符串有什么区别?接下来好程序员Python教程 ...

  5. python static 的用法_Python中static相关知识小结

    非 static 编译 不指定额外参数直接编译 Python: $ ./configure $ make 查看所依赖的共享库: $ ldd python linux-vdso.so.1 => ( ...

  6. 好程序员分享24个canvas基础知识小结 1

    好程序员分享24个canvas基础知识小结,非常全面详尽,推荐给大家. 现把canvas的知识点总结如下,以便随时查阅. 1.填充矩形 fillRect(x,y,width,height); 2.绘制 ...

  7. C/C++位域知识小结

    C/C++位域知识小结 几篇较全面的位域相关的文章: http://www.uplook.cn/blog/9/93362/ C/C++位域(Bit-fields)之我见 C中的位域与大小端问题 内存对 ...

  8. 知识小结------数据分析------Fisher‘s exact test(费希尔检测)

    系列知识小结目录 Cox比例风险回归模型(proportional hazards model) Fisher's exact test费希尔检测 系列知识小结目录 前言 一.Fisher's exa ...

  9. 推广知识小结(名词篇CPA、CPS、CPC、CPM、CPT、CPD)

    推广知识小结(名词篇) 一.CPC 二.CPM 三.CPA 四.CPS 五.CPT 六.CPD 一.CPC CPC,这一种推广模式全称为:Cost Per Click.这一种推广方式是按照点击量来进行 ...

最新文章

  1. 「长图」使用AI前需要评估的
  2. 网络营销外包——网络营销外包专员如何帮助企业挑选网站建设类型
  3. LeetCode 1166. 设计文件系统(哈希map)
  4. WEB标准学习路程之CSS:7.表格,滚动条,打印
  5. 基于visual Studio2013解决C语言竞赛题之1030计算函数
  6. 以正常使用来进行测试
  7. mut a:T 和a:mut T的区别
  8. 【图像重建】基于matlab迭代步长自适应图像超分辨重建【含Matlab源码 048期】
  9. mac vi快速删除_Mac下Vim编辑快捷键小结
  10. 全球与中国航天工业注塑机市场深度研究分析报告
  11. 关于Android 日历事件的实现
  12. Windows系统中的睡眠时间和关闭屏幕时间的设置
  13. java bean ejb_EJB:企业JavaBean - 解道jdon
  14. 求A,B 输入三位数字N,求两位数AB(其中个位数字为B,十位数字为A,且有0 #60 A #60 B #60 9)。
  15. 关于xds100仿真器的ftdi驱动无法使用的问题
  16. power bi -分组累计求和
  17. Android各个版本的区别
  18. Python社区交流
  19. 2022焊工(初级)考试题模拟考试题库及在线模拟考试
  20. unity3d学习路线选哪家?unity3d培训哪家专业?

热门文章

  1. labview:一个采集数据的小程序
  2. Centos用mail命令登录163邮箱发邮件
  3. hbase安装配置 整合到hadoop
  4. 安全狗入选信通院“业务安全推进计划”名单
  5. c# 微软 REST API语音转文字
  6. ArcGIS 保存后在另一台电脑上打开显示无数据的问题
  7. 920quiz+922复杂度+927quiz2
  8. antvf2动态数据_浅谈ES6基础——Promise
  9. 苹果云服务器里的家人共享位置,iPhone手机“家人共享”是什么?苹果手机怎么使用“家人共享”?...
  10. 《 阿Q正传》-鲁迅 词语解释 | 经典语录