完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
今天笔者介绍stm32初学者必会的工具 usart的串口设备。
usart很重要,可以传输数据,可以检查代码的错误位置,查看输出数据。 下图就是笔者的蓝牙串口 下面来介绍串口使用的步骤 1. 首先是接线–笔者这里使用的是stm32f103rct6 [tr]USART1_RXTXD[/tr]
芯片与串口设备交错相连 注意:串口正负极不要接反。 2. 然后就是编码 1.打开GPIOA 、USART1 RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_USART1EN; 2.配置对应的GPIOA引脚,我们这里用的是PA9、PA10; 这里4:浮空输入。 b:复位推挽输出 GPIOA->CRH = (GPIOA->CRH & 0xfffff000) | 0x4b0; 3. USART1配置 USART1->BRR = SystemCoreClock / 115200;//此为波特率,要看您的串口设备 USART1->CR1 = USART_CR1_TE | USART_CR1_UE | USART_CR1_RE; 注意:如果是APB1ENR 的波特率要改为:SystemCoreClock/2/115200; 4. 输出 USART1->DR = '1'; 直接上代码 下面展示一些 内联代码片。 #include #include #include #include int fputc(int ch, FILE *fp) { if (ch == 'n') fputc('r', fp); USART1->DR = ch; while ((USART1->SR & USART_SR_TXE) == 0);//等待发送完毕 return ch; } int main(void) { RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_USART1EN; GPIOA->CRH = (GPIOA->CRH & 0xfffff00f) | 0x4b0; USART1->BRR = SystemCoreClock / 115200; USART1->CR1 = USART_CR1_TE | USART_CR1_UE| USART_CR1_RE; while (1) { printf("hello world!n"); for(int i = 0 ; i < 20000; i++); } } 注意:如果是蓝牙串口输出时一定要注意输出的速度,如果太快了 将会导致电脑蓝牙崩溃,笔者崩了好多次,相关经验在博客中写出了 如果有什么问题尽管来博客私信: 点击. |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1877 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1661 浏览 1 评论
1145 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
760 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1720 浏览 2 评论
1963浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
789浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
612浏览 3评论
629浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
591浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-12 03:32 , Processed in 0.561391 second(s), Total 44, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号