收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
选择外部32MHz晶振时,具体值可参阅下表:
测试程序如下:
#include <iocc2530.h>
#define uint unsigned int
#define uchar unsigned char
void setSysClock();
void uart0Init();
void uart0SendStr(uchar *str);
void main()
{
setSysClock();
uart0Init();
uart0SendStr("Hello world\n");
while (1) {
}
}
/\*\*
\* 设置系统时钟为32MHz
\*/
void setSysClock()
{
CLKCONCMD &= ~0x40; // 选择系统时钟源为外部32MHz crystal oscillator
while(CLKCONSTA & 0x40); // 等待晶振启动
CLKCONCMD &= ~0x47; // 设置系统时钟频率为32MHZ
}
/\*\*
\* 8-bit数据位,无奇偶校验,Baud:115200bps
\*/
void uart0Init()
{
PERCFG = 0x00; // 外设控制,UART0选择端口位置1
P0SEL = 0x0C; // 端口0功能选择,P0\_2、P0\_3用作串口
P2DIR &= ~0xC0; // 端口0外设优先级控制,高2位置0,USART0优先
U0CSR |= 0x80; // UART模式
U0GCR |= 11;
U0BAUD |= 216; // 采用32MHz系统时钟时,波特率设置为115200
UTX0IF = 0; // UART0 TX中断标志初始置位0
}
void uart0SendStr(uchar *str)
{
while (*str != '\0') {
U0DBUF = *str++;
while(UTX0IF != 1); // 等待发送完成
UTX0IF = 0;
}
}
收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!