完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用的是STM8L052C6T6单片机,将串口映射到PC5和PC6,在使用串口的时候发现无论如何怎么搞都无法使用,各位大神帮帮看看哪里出现问题,代码如下:
void CLK_Config(void) { CLK_DeInit(); CLK_HSICmd(ENABLE);//使用内部高速时钟 CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI);//使用内部 高速时钟作为系统时钟源 CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);//1分频 } void USART1_Config(void) { GPIO_Init(GPIOC,GPIO_Pin_5,GPIO_Mode_Out_PP_High_Fast);//TXD输出上拉高速 GPIO_Init(GPIOC,GPIO_Pin_6,GPIO_Mode_In_PU_No_IT);//RXD 输入上拉无中断 CLK_PeripheralClockConfig(CLK_Peripheral_USART1,ENABLE);//使能串口1时钟 SYSCFG_REMAPDeInit();//恢复重映射默认值 SYSCFG_REMAPPinConfig(REMAP_Pin_USART1TxRxPortC,ENABLE);//USART1映射到PC5/PC6 USART_DeInit(USART1);//恢复串口1默认配置 USART_Init(USART1,9600,USART_WordLength_8b,USART_StopBits_1,USART_Parity_No,USART_DMAReq_TX|U SART_DMAReq_RX);//串口1、波特率9600、长度8位、停止位1位、校验无、允许发送和接收 USART_ClearITPendingBit(USART1,USART_IT_RXNE);//清除中断标志位 USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//开启中断接收 USART_Cmd(USART1,ENABLE);//打开串口1 } void main(void) { CLK_Config(); LED_Init(); USART1_Config(); while (1) { GPIO_SetBits(GPIOD,GPIO_Pin_5); USART_SendData8(USART1,0x01); delay(500); GPIO_ResetBits(GPIOD,GPIO_Pin_5); USART_SendData8(USART1,0x02); delay(500); } } |
|
相关推荐
1个回答
|
|
解决了,配置写法错误,改成
USART_Init(USART1,(u32)9600, USART_WordLength_8b, USART_StopBits_1,USART_Parity_No, (USART_Mode_TypeDef)(USART_Mode_Tx | USART_Mode_Rx)); 就行了 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2136 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1970 浏览 3 评论
4566 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2116 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2629 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 00:10 , Processed in 0.597106 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号