OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3577|回复: 8

串口使能会影响GPIOA其他口线吗?

[复制链接]

16

主题

197

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
457
金钱
457
注册时间
2012-4-20
在线时间
91 小时
发表于 2016-10-11 10:03:33 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 ba5rw 于 2016-10-11 10:06 编辑

为什么我一旦使能串口USART_Cmd(USART1, ENABLE);,使用模拟SPI的TFT就无法正常显示了?我的TFT使用到了除A9、A10之外的GPIOA6、7、8、11、12和GPIOC10、11口线,不开串口都工作正常。如果USART_Cmd(USART1, DISABLE);显示就正常,只要串口一工作显示就不行?会是什么原因呢?跟中断应该没有关系,我也关闭过中断,也不行。




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-10-11 12:07:23 | 显示全部楼层
回复

使用道具 举报

16

主题

197

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
457
金钱
457
注册时间
2012-4-20
在线时间
91 小时
 楼主| 发表于 2016-10-11 12:32:41 | 显示全部楼层
我在mini板上测试是通过的,但是到了自己做的板上串口都不能正常工作了,不知道哪儿出问题。设置是直接拷贝过来的,只是混用了寄存器SYS和库函数的system头文件,不知道是不是这里有冲突,查了一个上午了,头都晕了,还是没查出所以然来……
回复

使用道具 举报

28

主题

288

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1213
金钱
1213
注册时间
2011-4-9
在线时间
97 小时
发表于 2016-10-11 13:10:50 | 显示全部楼层
相互间独立的,看看你的初始化程序。
回复

使用道具 举报

16

主题

197

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
457
金钱
457
注册时间
2012-4-20
在线时间
91 小时
 楼主| 发表于 2016-10-11 14:36:14 | 显示全部楼层
山峰雪狼 发表于 2016-10-11 13:10
相互间独立的,看看你的初始化程序。

太诡异了!我查到TFT的GPIO初始化,配合串口调试助手,程序中放了一段往串口发送的数据。现在的情况是这样的:如果RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC ,ENABLE);串口就失效,不能输出既定的数据。如果RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC ,DISABLE);串口回复正常,或者屏蔽GPIO_Init(GPIOC, &GPIO_InitStructure);串口也回复正常,实际上也就是GPIOC的设置影响到串口,这真的不可思议……
回复

使用道具 举报

16

主题

197

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
457
金钱
457
注册时间
2012-4-20
在线时间
91 小时
 楼主| 发表于 2016-10-11 15:40:09 | 显示全部楼层
现在是拔掉TFT彩屏,串口就能正常发送。我把串口初始化屏蔽,就运行串口有关的GPAIO初始化函数,不可能往TFT发送什么数据,也不会自动接收什么数据,但是硬件上就是会发生这种怪现象,请大师们帮忙分析会是什么问题导致?管脚之间也不大可能短路什么的,因为不启动串口开启TFT是正常显示的,显示的很好……
串口有关的GPAIO初始化函数:
void LCD_GPIO_Init(void)
{

        GPIO_InitTypeDef  GPIO_InitStructure;
             
        RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA ,ENABLE);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6| GPIO_Pin_7| GPIO_Pin_8|  GPIO_Pin_11| GPIO_Pin_12;     //GPIO_Pin_9 | GPIO_Pin_10 |
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
       
       
        RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC ,ENABLE);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
       GPIO_Init(GPIOC, &GPIO_InitStructure);
       
      
}
回复

使用道具 举报

16

主题

197

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
457
金钱
457
注册时间
2012-4-20
在线时间
91 小时
 楼主| 发表于 2016-10-11 16:01:45 | 显示全部楼层
只要把TFT的SDA口接到PC10或PC12,串口就停止发送数据……
回复

使用道具 举报

28

主题

288

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1213
金钱
1213
注册时间
2011-4-9
在线时间
97 小时
发表于 2016-10-11 16:56:30 | 显示全部楼层
串口用的那几个IO
回复

使用道具 举报

16

主题

197

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
457
金钱
457
注册时间
2012-4-20
在线时间
91 小时
 楼主| 发表于 2016-10-11 23:41:47 来自手机 | 显示全部楼层
山峰雪狼 发表于 2016-10-11 16:56
串口用的那几个IO

pa9和pa10。这不会错的,他们单独工作都没问题。怀疑spi的tft彩屏sda脚冲击pc口。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-24 04:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表