完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
跟踪一下最好,估计是时序或命令串有问题
|
|
|
|
我的具体设置如下:
//激活外围设备时钟 RCC->AHBENR=RCC_AHBENR_GPIOCEN|RCC_AHBENR_GPIOBEN|RCC_AHBENR_GPIOAEN; RCC->APB2ENR|=RCC_APB2ENR_USART1EN; RCC->APB1ENR|=RCC_APB1ENR_USART2EN; //IO口模式设置 GPIOA->MODER=0x691A55A5; //A14、A13、A9、A8、A3、A2为AF,A11为输入,其余输出 GPIOB->MODER=0x55555A95; //B5、B4、B3为AF,其余为输出 GPIOC->MODER=0x51555555; //C13为输入,其余为输出 //IO口输出类型 GPIOA->OTYPER=GPIO_OTYPER_OT_9; //TX1(A9)为开漏 //IO输入模式设置 GPIOA->PUPDR=GPIO_PUPDR_PUPDR11_0|GPIO_PUPDR_PUPDR9_0|GPIO_PUPDR_PUPDR3_0 |GPIO_PUPDR_PUPDR2_0; //A11、A9、A3、A2上拉 GPIOC->PUPDR|=GPIO_PUPDR_PUPDR13_0; //C13上拉 //设置口线AF功能 GPIOA->AFR[0]=0x00001100; //A2-TX2,A3-RX2 GPIOA->AFR[1]=0x00000011; //A8-SCK1,A9-TX1 //设置口线速度 GPIOA->OSPEEDR|=GPIO_OSPEEDR_OSPEEDR8; GPIOC->OSPEEDR=0xFFFFFFFF; //USART1设置 USART1->CR1&=(uint32_t)~(1<<0); //禁能USART1 USART1->BRR=14318180/9600; //9600,14.31818M USART1->GTPR=(uint32_t)((1<<11)|(1<<10)|(1<<1)); //保护时间12BIT,4分频 USART1->CR3=USART_CR3_SCEN; //设置SmartCard模式 USART1->CR2=USART_CR2_STOP_1|USART_CR2_STOP_0|USART_CR2_CLKEN; //1.5位停止位,使能CLK时钟 USART1->CR1=USART_CR1_M|USART_CR1_PCE|USART_CR1_TE|USART_CR1_RXNEIE; //9位数据字长,使能校验 USART1->CR1|=USART_CR1_PEIE; USART1->CR1|=USART_CR1_UE; //使能USART1 NVIC_EnableIRQ(USART1_IRQn); //27 while((USART1->ISR&USART_ISR_TC)!=USART_ISR_TC); |
|
|
|
建议先采用官方固件库中的例程跑一遍,如果能正常通信,则通过断点方式查看寄存器状态数据和你不使用固件库的区别,从而确定是否使你设置的问题!
|
|
|
|
这个不懂,只能帮楼主加人气了。
|
|
|
|
下载一个固件库看一下啊
|
|
|
|
没用过,绑定
|
|
|
|
|
|
你的代码没仔细看,对于7816来说的话最好用示波器或者逻辑分析仪跟踪一下。
|
|
|
|
期待楼主更上一层楼
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1330 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1263 浏览 3 评论
2430 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1416 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1847 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-1 00:45 , Processed in 0.890193 second(s), Total 89, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号