OpenEdv-开源电子网

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

请问有没有人用过STM32F030C8T6的串口?

[复制链接]

7

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2014-12-30
在线时间
1 小时
发表于 2015-8-18 20:45:15 | 显示全部楼层 |阅读模式
5金钱
我写了个程序测试STM32F030的串口,但是用串口调试助手看不到发送过来的数据。用示波器测TX引脚也没波形,请问有谁知道这是什么原因吗?谢谢!

[mw_shl_code=c,true]/** ****************************************************************************** * @file Project/STM32F0xx_StdPeriph_Templates/main.c * @author MCD Application Team * @version V1.5.0 * @date 05-December-2014 * @brief Main program body ****************************************************************************** * @attention * * <h2><center>&copy; COPYRIGHT 2014 STMicroelectronics</center></h2> * * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); * You may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.st.com/software_license_agreement_liberty_v2 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "main.h" /** @addtogroup STM32F0xx_StdPeriph_Templates * @{ */ /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/ /* Private functions ---------------------------------------------------------*/ /** * @brief GPIO Config program. * @param None * @retval None */ void GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; //开启PA、PB时钟 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOB,ENABLE); //串口收发引脚配置 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3; 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_Init(GPIOA,&GPIO_InitStructure); //RS485控制引脚配置 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType=GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure); //RS485发送 GPIO_SetBits(GPIOB,GPIO_Pin_12); // //RS485接收 // GPIO_ResetBits(GPIOB,GPIO_Pin_12); //RS485指示灯引脚配置 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11|GPIO_Pin_12; GPIO_Init(GPIOA,&GPIO_InitStructure); //点亮RS485通信标志灯 GPIO_SetBits(GPIOA,GPIO_Pin_11|GPIO_Pin_12); } /** * @brief Simple Delay program. * @param None * @retval None */ void Delay(__IO uint32_t count) { for(;count>0;count--); } /** * @brief USART1 Config program. * @param None * @retval None */ void USART1_Config(void) { USART_InitTypeDef USART_InitStructure; //打开USART1时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); //PA.2和PA3复用为USART1的收发引脚 GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_1); GPIO_PinAFConfig(GPIOA,GPIO_PinSource3,GPIO_AF_1); //IO配置 GPIO_Config(); //串口参数初始化 USART_InitStructure.USART_BaudRate=9600; 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_Rx|USART_Mode_Tx; USART_Init(USART1,&USART_InitStructure); //开启串口 USART_Cmd(USART1,ENABLE); } /** * @brief Main program. * @param None * @retval None */ int main(void) { /*!< At this stage the microcontroller clock setting is already configured, this is done through SystemInit() function which is called from startup file (startup_stm32f0xx.s) before to branch to application main. To reconfigure the default setting of SystemInit() function, refer to system_stm32f0xx.c file */ /* Add your application code here */ USART1_Config(); /* Infinite loop */ while (1) { //发送数据 USART_SendData(USART1,0x30); //等待发送完成 while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET); //闪烁RS485通信标志灯 GPIO_SetBits(GPIOA,GPIO_Pin_11|GPIO_Pin_12); Delay(0x9ffff); GPIO_ResetBits(GPIOA,GPIO_Pin_11|GPIO_Pin_12); Delay(0x9ffff); } } /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ [/mw_shl_code]



最佳答案

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

没用过030c8t6,但我知道在103c8t6中串口的TX和RX的工作模式肯定是不一样的Tx:GPIO_Mode_AF_PP    Tx:GPIO_Mode_IN_FLOATING
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-4-28
在线时间
5 小时
发表于 2015-8-18 20:45:16 | 显示全部楼层
没用过030c8t6,但我知道在103c8t6中串口的TX和RX的工作模式肯定是不一样的Tx:GPIO_Mode_AF_PP    Tx:GPIO_Mode_IN_FLOATING
回复

使用道具 举报

7

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2014-12-30
在线时间
1 小时
 楼主| 发表于 2015-8-18 20:45:16 | 显示全部楼层
问题 已经解决了,谢谢各位帮忙!谢谢!
回复

使用道具 举报

7

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2014-12-30
在线时间
1 小时
 楼主| 发表于 2015-8-18 23:11:52 | 显示全部楼层
回复【2楼】Llinuxu:
---------------------------------
谢谢你的回答!参考的官方代码是这样设置的,你可以看看官方代码。你看看那个IO端口的内部结构就知道除非设置成模拟输入,否则不管设置成输入还是输出数字输入都是可以的。
回复

使用道具 举报

7

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2014-12-30
在线时间
1 小时
 楼主| 发表于 2015-8-18 23:14:09 | 显示全部楼层
我还没得到满意答案,坐等大神!谢谢!
回复

使用道具 举报

7

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2014-12-30
在线时间
1 小时
 楼主| 发表于 2015-8-18 23:17:28 | 显示全部楼层
我咋对这个论坛有点失望了,我并没有找到答案就把我的问题标记为已解决了,好歹我也买了mini板好吗?现在项目要用到M0,想来问问就这样。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-8-18 23:24:15 | 显示全部楼层
回复【5楼】andychen92:
---------------------------------
那是参考答案,供你参考的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-8-18 23:26:18 | 显示全部楼层
我建议你GPIO_Config(); 
放到:   
 GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_1);
 GPIO_PinAFConfig(GPIOA,GPIO_PinSource3,GPIO_AF_1);

这两行代码之前。

设置IO的时候,必须先使能其时钟,你明显GPIO的时钟还没开启,就在设置AFIO了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-8-18 23:28:23 | 显示全部楼层
另外,论坛不保证你所有问题都有满意答案,你去任何其他论坛,都是无法给你所有问题都做解答。

凡事,不要总想着为什么别人不帮你,多想想别人凭什么要帮你。

这世界就是这么残酷。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2014-12-30
在线时间
1 小时
 楼主| 发表于 2015-8-19 08:54:37 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
谢谢原子哥,误会了,以为已经把我的问题设置成已解决了,不好意思。你说的那个问题我发现了,但还是不行。我并不是希望一定有人能帮我解决,只是想人多力量大,自己没解决就拿出来讨论讨论,看看能不能得到什么启发。毕竟我还没出学校,还真有点天真,想得没那么多。我还是去问那边公司的人吧
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2017-10-19
在线时间
6 小时
发表于 2017-11-4 20:24:23 | 显示全部楼层
andychen92 发表于 2015-8-19 08:54
回复【8楼】正点原子:
---------------------------------
谢谢原子哥,误会了,以为已经把我的问题设置成 ...

问题解决了吗?我也遇到了这个问题,配置没问题但就是不能用,不知道什么问题
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2017-10-19
在线时间
6 小时
发表于 2017-11-4 20:48:30 | 显示全部楼层
刚刚问题解决了,例程利用的串口1,波特率为115200,我改成串口2时用的还是这个波特率就没反应,刚把波特率换成9600就可以了,不知道为什么,希望对大家有用
回复

使用道具 举报

19

主题

97

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2017-9-5
在线时间
78 小时
发表于 2019-9-23 13:29:08 | 显示全部楼层
我也遇到了。在stm32f030 20引脚上面可以跑的程序到 STM32030C8T6  48引脚上面的就不可以。一模一样的程序哈。不知道为什么。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 18:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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