完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
我用STM8S105K4写 UART程序, 单个UART 程序 串口发送没问题, 但是 和ADC ,中断,等一些程序整合成一个程序时 ,发送的就是乱码。大师们是怎么回事?
单个程序: #include"stm8s105k4.h" #include"stdio.h" void CLK_Init(void) { CLK_CKDIVR = 0x00; } void UART2_Init(void) { UART2_CR3 = 0x00; UART2_CR2 = 0x00; UART2_CR3 = 0x00; UART2_BRR2 = 0x0b; //115200 UART2_BRR1 = 0x08; } char putchar(char c) { while(!(UART2_SR&0x40)); UART2_DR = c; while(!(UART2_SR&0x40)); return (c); } main() { unsigned char c; CLK_Init(); UART2_Init(); UART2_CR2 = 0x0c; printf("1"); /*while(1) { printf("nr请输入一个按键"); while(!(UART2_SR&0x20)); c = UART2_DR; printf("nr输入按键为%c。",c); }*/ } 整合后的程序: #include "stm8s105k4.h" #include "stdio.h" #include "delay.h" #include "smg.h" #include "adc.h" #include "interrupt.h" #include "uart.h" void CLK_Init(void) { CLK_CKDIVR |= 0x00; //时钟初始化为内部16M } main() { _asm("sim"); //对中断进行初始化需要加 头汇编语句 CLK_Init(); //时钟初始化 16M GPIO_SMG_IN(); //数码管IO初始化 tiM1_Init(); //中断初始化 ADC_Init(); //ADC初始化 UART2_Init(); //串口初始化 _asm("rim"); //对中断进行初始化需要加 尾汇编语句 delayms(1000); printf(""); } |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2797 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2403 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2276 浏览 0 评论
2388 浏览 1 评论
1637 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:25 , Processed in 0.436110 second(s), Total 42, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4400