首先这个问题耗费了我比较多的时间来进行调试,比较郁闷;
1. 同时使用相同的函数进行了USART2和USART3的初始化配置, USART2工作正常, 中断服务程序的结构也是相同的, 收发都是正常的,没有发问题;
2. 使用USART3调试LCD时, 发现无法进行通信, 表现是Rx可以正常进行接收, Tx发送数据时一直为高电平, 使用示波器捕获不到任何波形;
3. 关于USART3的寄存器, GPIO的寄存器, USART3/GPIO/AFIO等时钟已经进行了配置, NVIC也进行了配置; 查看与USART2的差异,发现完全相同,没有差别, 但是无法发送.
4. 单独写了一个文件进行串口测试, 查询发送OK!
5. 将改单独文件内容复制到工程中(初始化完成后面), 相当于将初始化中关于USART部分进行了重新配置, 却发现不能进行发送了;
6. 锁定问题, 在硬件的初始化代码中有错误. 将初始化中各函数逐个注释以后, 发现问题在时钟配置函数中.
7. 最终锁定在
RCC_APB1PeriphClockCmd( RCC_APB1Periph_USART2 | RCC_APB1Periph_USART3 | RCC_APB1Periph_UART4
| RCC_APB1Periph_UART5 | RCC_APB1Periph_TIM3 | RCC_APB1Periph_TIM6
| RCC_APB1Periph_TIM7 | RCC_APB1Periph_I2C1 | RCC_APB1Periph_I2C2, ENABLE);
中,是的,问题就在这, RCC_APB1Periph_USART3 和 RCC_APB1Periph_I2C2! 我查阅了一下Pinouts and pin descriptions,
发现I2C2和USART3共用一组引脚, 而我为图省事, 把这些个时钟都打开了...
这就导致了USART3的Tx引脚一直为高电平, 而正常无数据发送时, USART的Tx就是一直为高电平的,
所以无论我怎么发数据, 都检测不到波形了...下课!!!
上一篇:stm32f407的串口使用集合(USART1,USART2,USART3,USART6)
下一篇:STM32 USB OTG官方库移植
推荐阅读最新更新时间:2024-03-16 16:14
设计资源 培训 开发板 精华推荐
- PC产业驶入创新超车道,英特尔蓉城撬动AI新引擎
- 与产业聚力共赢,英特尔举行新质生产力技术生态大会
- “新”享5G-A万兆网络前沿体验 高通携手产业伙伴亮相第二届链博会
- 英飞凌推出符合ASIL-D标准的新型汽车制动系统和电动助力转向系统三相栅极驱动器 IC
- 南芯科技推出80V升降压转换器,持续深耕工业储能市场
- 法雷奥与罗姆联合开发新一代功率电子领域
- 贸泽电子开售能为电动汽车牵引逆变器提供可扩展性能的 英飞凌HybridPACK Drive G2模块
- 德州仪器新型 MCU 可实现边缘 AI 和先进的实时控制, 提高系统效率、安全性和可持续性
- 瑞萨推出高性能四核应用处理器, 增强工业以太网与多轴电机控制解决方案阵容
- 研华全新模块化电脑SOM-6833助力5G路测设备升级
- 看视频赢京东卡 PI电机驱动解决方案学习中心正式上线
- ADI & 世健 新基建系列第三期——5G 仪器仪表和测试 答题赢好礼!
- 100%获奖,EE新年福利!
- 迈来芯高可靠可编程霍尔开关,5月21日 10:00 邀您观看直播
- 12月6日上午10:00有奖直播:如何使用Microchip安全方案为IoT设备保驾护航
- 今天下午1点开播!市场上最广泛的光学传感方案组合—艾迈斯欧司朗光学技术论坛
- MPS有奖活动|梦想设计闪亮登场,便携式多功能电工台诞生啦!
- 有奖国产芯直播:先楫800MHz RISC-V MCU高能秀,岂止控4只伺服电机,干货多多
- 有奖下载 |《设计无线通信系统时需考虑的天线因素》
- 有奖直播:新科技、新课堂、新学期~ ADI软件定义无线电ADALM-Pluto入门实战