完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
写一个usart串口小程序,如下。编译成功,下载到STM32107vc芯片的板子后, 打开串口调试助手没有任何输出,求分析原因
#include "stm32f10x.h" #include void RCC_Configuration(void); void GPIO_Configuration(void); void USART_Configuration(void); void delay(__IO uint32_t nCount) { for (; nCount != 0; nCount--); } int main(void) { u8 i; u8 t[]={"welcome to be here"}; RCC_Configuration(); GPIO_Configuration(); USART_Configuration(); while(1) { for(i=0;i<18;i++) { USART_SendData(USART2,t); printf("hdfjhsodjojdos"); delay(80000); } } } void RCC_Configuration(void) { /* 使能LED对应GPIO的Clock时钟 *///---打开相应外设时钟------- RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); } void USART_Configuration() { USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Parity = USART_Parity_No; USART_Init(USART1,&USART_InitStructure); USART_Cmd(USART1,ENABLE); } void GPIO_Configuration() { GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //输出模式设置为复用推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStructure); }
|
|
相关推荐
13个回答
|
|
电路里的JP3和JP5跳线有没有设置对,我用的是stm32f103,和你的设置都一样,只是比你的多一个串口中断的设置,其他都一样,我的没有问题。
另外的区别就是发送数据前你没有查发送状态位void USART1_Send_Byte(u8 Data) { while(!USART_GetFlagStatus(USART1,USART_FLAG_TXE)); //USART_GetFlagStatus USART_SendData(USART1,Data); }
最佳答案
|
|
|
|
弄了2天,放弃了
|
|
|
|
端口号错了, USART_SendData(USART2,t);这里发送用的是USART2,程序和原理图里设置的是USART1
|
|
|
|
这个忘记改了 试过usart1不行,又改的USAt2,也不行,发帖子的时候想发用usart 1的 这点忘改了 |
|
|
|
USART_SendData(USART2,t);这里还是改成USART1,毕竟设置的是端口1,然后吧t改成一个固定的数值试试。
|
|
|
|
试过了 不可以 |
|
|
|
端口号是USART1,则是肯定的,至少程序和原理图都是这样的,程序应该没问题,那么就要看串口调试助手的设置对不对了
|
|
|
|
设置是指奇偶校验波特率停止位那些么? |
|
|
|
是的,还有显示方式,如十六进制或ASCII,十六进制可以显示所有发送的字节,ASCII码方式有的是数值代表控制符,会显示不出来的
|
|
|
|
都调试好了 不管用。。。 |
|
|
|
人中狼 发表于 2017-9-24 13:51 好的 我试试,也可能是硬件的问题 |
|
|
|
不错 学习了 谢谢
|
|
|
|
不错,很好的经验分享,辛苦麻烦了,欠缺这方面的资料,非常感谢。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2005 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1858 浏览 3 评论
4442 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2007 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2513 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 12:11 , Processed in 0.902016 second(s), Total 100, Slave 80 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号