完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如下是STM32F4调试的串口程序: #include "usart2.h" void MyUartinit(void ) { //NVIC_Config(); STM_EVAL_COMInit(); USART_Configuration(115200); // USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); } void STM_EVAL_COMInit(void) { GPIO_InitTypeDef GPIO_InitStructure; /* Enable GPIO clock */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); /* Enable UART clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); /* Connect PXx to USARTx_Tx*/ GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_USART1); /* Connect PXx to USARTx_Rx*/ GPIO_PinAFConfig(GPIOB, GPIO_PinSource7, GPIO_AF_USART1); /* Configure USART Tx as alternate function */ GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); /* Configure USART Rx as alternate function */ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_Init(GPIOB, &GPIO_InitStructure); } void USART_Configuration(int BaudRate) { USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate = BaudRate; 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); /* Configure USART1 basic and asynchronous paramters */ USART_Cmd(USART1, ENABLE); /* Enable USART1 */ } void NVIC_Config(void) { NVIC_InitTypeDef NVIC_InitStructure; /* Enable the USARTx Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } int fputc(int ch, FILE *f) { /* Place your implementation of fputc here */ /* e.g. write a character to the USART */ USART_SendData(USART1, (u8) ch); /* Loop until the end of transmission */ while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) { } return ch; } int fgetc(FILE *f) { while (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET); return (int)USART_ReceiveData(USART2); } void USART1_IRQHandler(void) { char c; if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)==SET) { c = USART_ReceiveData(USART1); USART_SendData(USART1,c); USART_ClearITPendingBit(USART1,USART_IT_RXNE); // GPIO_ToggleBits(GPIOD,GPIO_Pin_14); } } void Usart_Test(void) { int i=0; for(i=0 ; i |
|
相关推荐
15个回答
|
|
试试看 怎么样呀!
|
|
|
|
good
|
|
|
|
试试看 怎么样呀!
|
|
|
|
|
|
|
|
|
|
|
|
ddd
|
|
|
|
请教一下楼主,F429DISCOVERY的PA9和PA10并没有通过电平转换芯片连接到上位机,这个怎么解决的?
|
|
|
|
有工程代码吗?
|
|
|
|
谢谢分享
|
|
|
|
那你外部需要有串口转换芯片了,和普通串口的功能一样 |
|
|
|
请教一下楼主,F429DISCOVERY的PA9和PA10并没有通过电平转换芯片连接到上位机,这个怎么解决的?
|
|
|
|
楼主不是有回复,在外部加了转换芯片 |
|
|
|
大神啊
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1285 浏览 1 评论
1019 浏览 1 评论
MCU友好过渡MPU,米尔基于STM32MP135开发板裸机开发应用笔记
640 浏览 0 评论
自定义系统时钟频率后,用库函数和微带两种方式点亮LED灯,为什么灯的闪烁频率不一致?
1571 浏览 2 评论
1797 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-24 18:40 , Processed in 0.640316 second(s), Total 53, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号