历史上的今天
今天是:2024年09月13日(星期五)
2018年09月13日 | STM32 USART3可以接收无法发送问题
2018-09-13 来源:eefocus
首先这个问题耗费了我比较多的时间来进行调试,比较郁闷;
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就是一直为高电平的,
所以无论我怎么发数据, 都检测不到波形了...下课!!!
史海拾趣
|
现在看设计的产品,无论是手机还是车载DVD还有导航等。都是注重了产品设计。强调了外观、功能、接口等。这样的产品设计是电脑、手机等消费电子的设计观念。用在车载产品上是不合适的。一个车的使用平均无故障时间是2年左右。现在用设计手机的概念去 ...… 查看全部问答> |
|
Error: Node instance \"inst\" instantiates undefined entity \"aab\" 这是我编译完遇到的,说明一下,aab模块是我用vhdl语言编译形成的元件,这句话说明我aab遇到什么问题了?… 查看全部问答> |
|
1.在vmware上安装vxworks之前是不是要先安装好tornado2.2,再安装并建立虚拟机? 2.vmware 6.5.1用起来更好还是6.0,或者5.0? 3.如果目标机是虚拟机,而且本机是x86cpu,则是否应选用tornado for pentium?若目标机是其他硬件板子,是否就视情 ...… 查看全部问答> |
|
请问大牛们,我在Vista系统下使用Filedisk时命令如下: filedisk /mount 0 c:\\filedisk.img 8M t: 没有提示错误,filedisk.img也建立起来了,但是在我的电脑里或dir t(提示“系统找不到指定路径”):都没有T盘。 请问是为什么,谢谢!… 查看全部问答> |
|
小弟在网上下了好多DXP2004都有些问题,这两天搞得焦头烂额的,希望那位有的能传给我,不胜感激! wanglei198661@163.com 有sp3的最好,sp2的也行 可以用的话给100分!!!… 查看全部问答> |
|
用什么代码能开启pda的无线功能? wince高手们,小弟现在用的是华硕的626的一款pda,操作系统是windows mobile6.0,支持无线Wi-Fi; 小弟现有一个问题,我在程序中用什么函数能够自动启用无线功能?… 查看全部问答> |




