完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这是main程序
#include "STM32f10x.h" #include "bsp_usart1.h" #include "bsp_led.h" int main(void) { LED_GPIO_Config(); USART1_Config(); NVIC_Configuration(); while(1) { char ch; if(ch=='A') { LED1(ON); } else if(ch=='B') { LED1(OFF); } } } 这是bsp.usart.c程序 #include "bsp_usart1.h" /** * @brief USART1 GPIO ÅäÖÃ,¹¤×÷ģʽÅäÖá£9600 8-N-1 * @param ÎÞ * @retval ÎÞ */ void USART1_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; /* config USART1 clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE); /* USART1 GPIO config */ /* Configure USART1 Tx (PA.09) as alternate function push-pull */ 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); /* Configure USART1 Rx (PA.10) as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); /* USART1 mode config */ USART_InitStructure.USART_BaudRate = 115200; 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); /* ʹÄÜ´®¿Ú1½ÓÊÕÖÐ¶Ï */ USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); // USART_ITConfig(USART1, USART_IT_TXE, ENABLE); USART_Cmd(USART1, ENABLE); } /// ÅäÖÃUSART1½ÓÊÕÖÐ¶Ï void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; /* Configure the NVIC Preemption Priority Bits */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); /* Enable the USARTy Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } /****************** ÖжϷþÎñ³ÌÐò *****************/ void USART1_IRQHandler(void) { uint8_t ch; if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) { ch = USART_ReceiveData(USART1); printf( "rn%02xrn", ch ); //printf·¢ËÍ·½Ê½ USART_SendData(USART1,ch); //32¿âº¯Êý·¢ËÍ·½Ê½ while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET); USART_ClearFlag(USART1,USART_FLAG_TC); } } /****************** ¿ÉÒÔ·¢ËÍÒ»¸ö×Ö·û´® *******************/ void USART1_Send_s(u8 *ch) { while(*ch) { USART_SendData(USART1,*ch); while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET); USART_ClearFlag(USART1,USART_FLAG_TC); } } /// Öض¨Ïòc¿âº¯Êýprintfµ½USART1 int fputc(int ch, FILE *f) { /* ·¢ËÍÒ»¸ö×Ö½ÚÊý¾Ýµ½USART1 */ USART_SendData(USART1, (uint8_t) ch); /* µÈ´ý·¢ËÍÍê±Ï */ while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET); return (ch); } /// Öض¨Ïòc¿âº¯Êýscanfµ½USART1 int fgetc(FILE *f) { /* µÈ´ý´®¿Ú1ÊäÈëÊý¾Ý */ while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET); return (int)USART_ReceiveData(USART1); } 本人菜鸟,求大神指导 |
|
相关推荐
35个回答
|
|
|
|
|
|
学习一些
|
|
|
|
没看到LED1()定义;
|
|
|
|
题主确定程序成功进中断了么 如果发数据的话
|
|
|
|
楼上正解。另外看看系统时钟起来了嘛?
|
|
|
|
1,把NVIC_Configuration();放到初始化最前面。
2,没看到LED_GPIO_Config();,想来应该不会有问题; 3,把printf( "rn%02xrn", ch ); 放到LED(ON);和LED(OFF);至少可以确定通讯是否有问题。 |
|
|
|
ch临时变量,改为全局变量。
|
|
|
|
这能点亮才怪,主循环中ch又没有赋值,按你的思路楼上的回答是对的
|
|
|
|
|
|
|
|
|
|
mian函数和USART中断里的ch变量不是同一个,改为全局变量,中断里不要重新定义
|
|
|
|
低级错误
|
|
|
|
没有看到LED1()定义?ch赋的值?
|
|
|
|
CH弄个全局变量看看
|
|
|
|
NVIC放最前
|
|
|
|
char ch;这个没有赋值,
|
|
|
|
1,把NVIC_Configuration
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1168 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1105 浏览 2 评论
2203 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1297 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1718 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 23:58 , Processed in 0.928524 second(s), Total 107, Slave 91 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号