OpenEdv-开源电子网

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

我把串口引脚改了收不到数据

[复制链接]

28

主题

70

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
207
金钱
207
注册时间
2014-12-12
在线时间
22 小时
发表于 2014-12-12 10:54:11 | 显示全部楼层 |阅读模式
5金钱
以下是代码 求大神帮解决 着急啊
[mw_shl_code=c,true]void uart_init(u32 bound){ //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOB时钟 USART_DeInit(USART1); //复位串口1 //USART1_TX PA.9 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; //PB.8 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出 GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化PB8 //USART1_RX PA.10 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入 GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化PB9 //Usart1 NVIC 配置 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子优先级3 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能 NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器 //USART 初始化设置 USART_InitStructure.USART_BaudRate = bound;//一般设置为9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式 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_Rx | USART_Mode_Tx; //收发模式 USART_Init(USART1, &USART_InitStructure); //初始化串口 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启中断 USART_Cmd(USART1, ENABLE); //使能串口 } [/mw_shl_code]



[mw_shl_code=c,true] int main(void) { u8 i,flag=0; delay_init(); //延时函数初始化 LED_Init(); //初始化I/O // key_init(); NVIC_Configuration(); uart_init(2400); Init_1621(); HT1621_all_on(); delay_ms(1000); HT1621_all_off(); delay_ms(1000); // HT1621_all_on(); Display_PM2P5_Flag_On(); Display_CH2O_Flag_On(); Display_Wendu_Flag_On(); Display_Shidu_Flag_On(); Display_PM2P5_Value(250); Display_CH2O_Value(110); Display_Wendu_Value(20); Display_Shidu_Value(30); while(1) { while (USART_GetITStatus(USART1, USART_IT_RXNE) == RESET); i=USART_ReceiveData(USART1); PM=10; // return USART_ReceiveData(USART1); Display_PM2P5_Value(PM); delay_ms(1000); } } [/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

谢谢各位大神的解答 知道错误了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

28

主题

70

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
207
金钱
207
注册时间
2014-12-12
在线时间
22 小时
 楼主| 发表于 2014-12-12 10:54:12 | 显示全部楼层
谢谢各位大神的解答 知道错误了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-12 22:35:39 | 显示全部楼层
楼主你的思路是什么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

28

主题

70

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
207
金钱
207
注册时间
2014-12-12
在线时间
22 小时
 楼主| 发表于 2014-12-12 22:49:29 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
使用查询方式读取数据 标志位置1代表收到了一个字节 然后读出来 但一直收不到 使用中断方式的话进不去中断函数 顺便说一下原子哥 我用的模块是10ms发一个字节
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-12 22:52:36 | 显示全部楼层
回复【3楼】z2500053109:
---------------------------------
我是想问,为什么PA7,PA8可以做串口??你的依据是?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2014-11-13
在线时间
28 小时
发表于 2014-12-12 23:02:48 | 显示全部楼层
楼主是不是以为端口可以随便重映射?那是不行的,只能重映射到指定的引脚,请查看STM32中文参考手册第8章通用和复用功能。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-28 00:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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